From: geoffk Date: Fri, 4 May 2001 06:31:27 +0000 (+0000) Subject: * invoke.texi (i386 Options): Delete references to -malign-jumps, X-Git-Tag: upstream/4.9.2~94595 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a2b35d8705efb23182c3e4b75a5e7727b6ddfc88;p=platform%2Fupstream%2Flinaro-gcc.git * invoke.texi (i386 Options): Delete references to -malign-jumps, -malign-loops, -malign-functions. * i386.c (ix86_align_funcs): Delete. (ix86_align_loops): Delete. (ix86_align_jumps): Delete. (override_options): Mark -malign-* as obsolete. Emulate their behaviour with the -falign-* options. Default -falign-* from the processor table. * i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's patch of Wed May 2 13:09:36 2001. (LOOP_ALIGN): Delete. (LOOP_ALIGN_MAX_SKIP): Delete. (LABEL_ALIGN_AFTER_BARRIER): Delete. (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41825 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb502a4..9c23068 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,20 @@ +2001-05-03 Geoff Keating + + * invoke.texi (i386 Options): Delete references to -malign-jumps, + -malign-loops, -malign-functions. + * i386.c (ix86_align_funcs): Delete. + (ix86_align_loops): Delete. + (ix86_align_jumps): Delete. + (override_options): Mark -malign-* as obsolete. Emulate their + behaviour with the -falign-* options. Default -falign-* from + the processor table. + * i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's + patch of Wed May 2 13:09:36 2001. + (LOOP_ALIGN): Delete. + (LOOP_ALIGN_MAX_SKIP): Delete. + (LABEL_ALIGN_AFTER_BARRIER): Delete. + (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete. + 2001-05-04 Andreas Jaeger * except.h: Add prototype declaration for diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 9831811..689b3af5 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -532,14 +532,7 @@ int ix86_branch_cost; const char *ix86_branch_cost_string; /* Power of two alignment for functions. */ -int ix86_align_funcs; const char *ix86_align_funcs_string; - -/* Power of two alignment for loops. */ -int ix86_align_loops; - -/* Power of two alignment for non-loop jumps. */ -int ix86_align_jumps; static void output_pic_addr_const PARAMS ((FILE *, rtx, int)); static void put_condition_code PARAMS ((enum rtx_code, enum machine_mode, @@ -751,40 +744,57 @@ override_options () if (TARGET_64BIT) ix86_regparm = REGPARM_MAX; - /* Validate -malign-loops= value, or provide default. */ - ix86_align_loops = processor_target_table[ix86_cpu].align_loop; + /* If the user has provided any of the -malign-* options, + warn and use that value only if -falign-* is not set. + Remove this code in GCC 3.2 or later. */ if (ix86_align_loops_string) { - i = atoi (ix86_align_loops_string); - if (i < 0 || i > MAX_CODE_ALIGN) - error ("-malign-loops=%d is not between 0 and %d", i, MAX_CODE_ALIGN); - else - ix86_align_loops = i; + warning ("-malign-loops is obsolete, use -falign-loops"); + if (align_loops == 0) + { + i = atoi (ix86_align_loops_string); + if (i < 0 || i > MAX_CODE_ALIGN) + error ("-malign-loops=%d is not between 0 and %d", i, MAX_CODE_ALIGN); + else + align_loops = 1 << i; + } } - /* Validate -malign-jumps= value, or provide default. */ - ix86_align_jumps = processor_target_table[ix86_cpu].align_jump; if (ix86_align_jumps_string) { - i = atoi (ix86_align_jumps_string); - if (i < 0 || i > MAX_CODE_ALIGN) - error ("-malign-jumps=%d is not between 0 and %d", i, MAX_CODE_ALIGN); - else - ix86_align_jumps = i; + warning ("-malign-jumps is obsolete, use -falign-jumps"); + if (align_jumps == 0) + { + i = atoi (ix86_align_jumps_string); + if (i < 0 || i > MAX_CODE_ALIGN) + error ("-malign-loops=%d is not between 0 and %d", i, MAX_CODE_ALIGN); + else + align_jumps = 1 << i; + } } - /* Validate -malign-functions= value, or provide default. */ - ix86_align_funcs = processor_target_table[ix86_cpu].align_func; if (ix86_align_funcs_string) { - i = atoi (ix86_align_funcs_string); - if (i < 0 || i > MAX_CODE_ALIGN) - error ("-malign-functions=%d is not between 0 and %d", - i, MAX_CODE_ALIGN); - else - ix86_align_funcs = i; + warning ("-malign-functions is obsolete, use -falign-functions"); + if (align_functions == 0) + { + i = atoi (ix86_align_funcs_string); + if (i < 0 || i > MAX_CODE_ALIGN) + error ("-malign-loops=%d is not between 0 and %d", i, MAX_CODE_ALIGN); + else + align_functions = 1 << i; + } } + /* Default align_* from the processor table. */ +#define abs(n) (n < 0 ? -n : n) + if (align_loops == 0) + align_loops = 1 << abs (processor_target_table[ix86_cpu].align_loop); + if (align_jumps == 0) + align_jumps = 1 << abs (processor_target_table[ix86_cpu].align_jump); + if (align_functions == 0) + align_functions = 1 << abs (processor_target_table[ix86_cpu].align_func); + /* Validate -mpreferred-stack-boundary= value, or provide default. The default of 128 bits is for Pentium III's SSE __m128. */ ix86_preferred_stack_boundary = 128; diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index b6dc9c4..0c0a7cd 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -587,10 +587,7 @@ extern int ix86_arch; #define PREFERRED_STACK_BOUNDARY ix86_preferred_stack_boundary /* Allocation boundary for the code of a function. */ -#define FUNCTION_BOUNDARY \ - ((unsigned int) 1 << ((ix86_align_funcs >= 0 \ - ? ix86_align_funcs : -ix86_align_funcs) \ - + 3)) +#define FUNCTION_BOUNDARY 16 /* Alignment of field after `int : 0' in a structure. */ @@ -601,7 +598,7 @@ extern int ix86_arch; might need to be aligned. No data type wants to be aligned rounder than this. - Pentium+ preferrs DFmode values to be alignmed to 64 bit boundary + Pentium+ preferrs DFmode values to be aligned to 64 bit boundary and Pentium Pro XFmode values at 128 bit boundaries. */ #define BIGGEST_ALIGNMENT 128 @@ -670,18 +667,6 @@ extern int ix86_arch; and give entire struct the alignment of an int. */ /* Required on the 386 since it doesn't have bitfield insns. */ #define PCC_BITFIELD_TYPE_MATTERS 1 - -/* Align loop starts for optimal branching. */ -#define LOOP_ALIGN(LABEL) \ - (ix86_align_loops < 0 ? -ix86_align_loops : ix86_align_loops) -#define LOOP_ALIGN_MAX_SKIP \ - (ix86_align_loops < -3 ? (1<<(-ix86_align_loops-1))-1 : 0) - -/* This is how to align an instruction for optimal branching. */ -#define LABEL_ALIGN_AFTER_BARRIER(LABEL) \ - (ix86_align_jumps < 0 ? -ix86_align_jumps : ix86_align_jumps) -#define LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP \ - (ix86_align_jumps < -3 ? (1<<(-ix86_align_jumps-1))-1 : 0) /* Standard register usage. */ @@ -3138,9 +3123,6 @@ extern const char *ix86_align_funcs_string; /* power of two alignment for functi extern const char *ix86_preferred_stack_boundary_string;/* power of two alignment for stack boundary */ extern const char *ix86_branch_cost_string; /* values 1-5: see jump.c */ extern int ix86_regparm; /* ix86_regparm_string as a number */ -extern int ix86_align_loops; /* power of two alignment for loops */ -extern int ix86_align_jumps; /* power of two alignment for non-loop jumps */ -extern int ix86_align_funcs; /* power of two alignment for functions */ extern int ix86_preferred_stack_boundary; /* preferred stack boundary alignment in bits */ extern int ix86_branch_cost; /* values 1-5: see jump.c */ extern const char * const hi_reg_name[]; /* names for 16 bit regs */ diff --git a/gcc/invoke.texi b/gcc/invoke.texi index b006ef9..307b03b 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -470,8 +470,7 @@ in the following sections. -mintel-syntax -mieee-fp -mno-fancy-math-387 @gol -mno-fp-ret-in-387 -msoft-float -msvr3-shlib @gol -mno-wide-multiply -mrtd -malign-double @gol --malign-jumps=@var{num} -malign-loops=@var{num} @gol --malign-functions=@var{num} -mpreferred-stack-boundary=@var{num} @gol +-mpreferred-stack-boundary=@var{num} @gol -mthreads -mno-align-stringops -minline-all-stringops @gol -mpush-args -maccumulate-outgoing-args -m128bit-long-double @gol -m96bit-long-double -mregparm=@var{num}} @@ -6865,26 +6864,6 @@ function by using the function attribute @samp{regparm}. value, including any libraries. This includes the system libraries and startup modules. -@item -malign-loops=@var{num} -Align loops to a 2 raised to a @var{num} byte boundary. If -@samp{-malign-loops} is not specified, the default is 2 unless -gas 2.8 (or later) is being used in which case the default is -to align the loop on a 16 byte boundary if it is less than 8 -bytes away. - -@item -malign-jumps=@var{num} -Align instructions that are only jumped to to a 2 raised to a @var{num} -byte boundary. If @samp{-malign-jumps} is not specified, the default is -2 if optimizing for a 386, and 4 if optimizing for a 486 unless -gas 2.8 (or later) is being used in which case the default is -to align the instruction on a 16 byte boundary if it is less -than 8 bytes away. - -@item -malign-functions=@var{num} -Align the start of functions to a 2 raised to @var{num} byte boundary. -If @samp{-malign-functions} is not specified, the default is 2 if optimizing -for a 386, and 4 if optimizing for a 486. - @item -mpreferred-stack-boundary=@var{num} Attempt to keep the stack boundary aligned to a 2 raised to @var{num} byte boundary. If @samp{-mpreferred-stack-boundary} is not specified,