Commit 00a84d0e by Sheldon Lobo Committed by Sheldon Lobo

Minor SPARC T4 and M7 fixes and additions.

	* config/sparc/sparc.c (sparc_option_override): Set function
	alignment for -mcpu=niagara7 to 64 to match the I$ line.
	* config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
	latency to 1.
	* config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
	latency to 2.
	* config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
	* gcc.target/sparc/niagara7-align.c: New test.

From-SVN: r248184
parent 243c2883
2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
* config/sparc/sparc.c (sparc_option_override): Set function
alignment for -mcpu=niagara7 to 64 to match the I$ line.
* config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
latency to 1.
* config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
latency to 2.
* config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
2017-05-18 Marek Polacek <polacek@redhat.com> 2017-05-18 Marek Polacek <polacek@redhat.com>
PR sanitizer/80797 PR sanitizer/80797
......
...@@ -169,7 +169,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -169,7 +169,7 @@ along with GCC; see the file COPYING3. If not see
#undef CPP_CPU64_DEFAULT_SPEC #undef CPP_CPU64_DEFAULT_SPEC
#define CPP_CPU64_DEFAULT_SPEC "" #define CPP_CPU64_DEFAULT_SPEC ""
#undef ASM_CPU32_DEFAULT_SPEC #undef ASM_CPU32_DEFAULT_SPEC
#define ASM_CPU32_DEFAUILT_SPEC AS_SPARC32_FLAG AS_NIAGARA7_FLAG #define ASM_CPU32_DEFAULT_SPEC AS_SPARC32_FLAG AS_NIAGARA7_FLAG
#undef ASM_CPU64_DEFAULT_SPEC #undef ASM_CPU64_DEFAULT_SPEC
#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG AS_NIAGARA7_FLAG #define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG AS_NIAGARA7_FLAG
#endif #endif
......
...@@ -1528,15 +1528,18 @@ sparc_option_override (void) ...@@ -1528,15 +1528,18 @@ sparc_option_override (void)
target_flags |= MASK_LRA; target_flags |= MASK_LRA;
/* Supply a default value for align_functions. */ /* Supply a default value for align_functions. */
if (align_functions == 0 if (align_functions == 0)
&& (sparc_cpu == PROCESSOR_ULTRASPARC {
if (sparc_cpu == PROCESSOR_ULTRASPARC
|| sparc_cpu == PROCESSOR_ULTRASPARC3 || sparc_cpu == PROCESSOR_ULTRASPARC3
|| sparc_cpu == PROCESSOR_NIAGARA || sparc_cpu == PROCESSOR_NIAGARA
|| sparc_cpu == PROCESSOR_NIAGARA2 || sparc_cpu == PROCESSOR_NIAGARA2
|| sparc_cpu == PROCESSOR_NIAGARA3 || sparc_cpu == PROCESSOR_NIAGARA3
|| sparc_cpu == PROCESSOR_NIAGARA4 || sparc_cpu == PROCESSOR_NIAGARA4)
|| sparc_cpu == PROCESSOR_NIAGARA7)) align_functions = 32;
align_functions = 32; else if (sparc_cpu == PROCESSOR_NIAGARA7)
align_functions = 64;
}
/* Validate PCC_STRUCT_RETURN. */ /* Validate PCC_STRUCT_RETURN. */
if (flag_pcc_struct_return == DEFAULT_PCC_STRUCT_RETURN) if (flag_pcc_struct_return == DEFAULT_PCC_STRUCT_RETURN)
......
...@@ -1566,7 +1566,10 @@ do { \ ...@@ -1566,7 +1566,10 @@ do { \
and annulled branches insert 4 bubbles. and annulled branches insert 4 bubbles.
On Niagara-2 and Niagara-3, a not-taken branch costs 1 cycle whereas On Niagara-2 and Niagara-3, a not-taken branch costs 1 cycle whereas
a taken branch costs 6 cycles. */ a taken branch costs 6 cycles.
The T4 Supplement specifies the branch latency at 2 cycles.
The M7 Supplement specifies the branch latency at 1 cycle. */
#define BRANCH_COST(speed_p, predictable_p) \ #define BRANCH_COST(speed_p, predictable_p) \
((sparc_cpu == PROCESSOR_V9 \ ((sparc_cpu == PROCESSOR_V9 \
...@@ -1579,7 +1582,11 @@ do { \ ...@@ -1579,7 +1582,11 @@ do { \
: ((sparc_cpu == PROCESSOR_NIAGARA2 \ : ((sparc_cpu == PROCESSOR_NIAGARA2 \
|| sparc_cpu == PROCESSOR_NIAGARA3) \ || sparc_cpu == PROCESSOR_NIAGARA3) \
? 5 \ ? 5 \
: 3)))) : (sparc_cpu == PROCESSOR_NIAGARA4 \
? 2 \
: (sparc_cpu == PROCESSOR_NIAGARA7 \
? 1 \
: 3))))))
/* Control the assembler format that we output. */ /* Control the assembler format that we output. */
......
2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
* gcc.target/sparc/niagara7-align.c: New test.
2017-05-18 Marek Polacek <polacek@redhat.com> 2017-05-18 Marek Polacek <polacek@redhat.com>
PR sanitizer/80797 PR sanitizer/80797
......
/* { dg-do compile } */
/* { dg-options "-falign-functions -mcpu=niagara7" } */
/* { dg-final { scan-assembler "\.align 64" } } */
void foo(void) {}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment