* invoke.texi (i386 Options): Delete references to -malign-jumps,
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 May 2001 06:31:27 +0000 (06:31 +0000)
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 May 2001 06:31:27 +0000 (06:31 +0000)
-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

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/invoke.texi

index bb502a4..9c23068 100644 (file)
@@ -1,3 +1,20 @@
+2001-05-03  Geoff Keating  <geoffk@redhat.com>
+
+       * 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  <aj@suse.de>
 
        * except.h: Add prototype declaration for
index 9831811..689b3af 100644 (file)
@@ -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;
 \f
 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;
index b6dc9c4..0c0a7cd 100644 (file)
@@ -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)
 \f
 /* 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 */
index b006ef9..307b03b 100644 (file)
@@ -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,