aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@redhat.com>2001-05-04 06:31:27 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2001-05-04 06:31:27 +0000
commit3e18fdf680e36b07690ce858c23de9ed898e6eb0 (patch)
treec6fab85cef7a72555f257a789f9e9c28b20ef6f6
parent8e9eff6bc04068f44def72f44a5f11027d7eb3dc (diff)
downloadgcc-3e18fdf680e36b07690ce858c23de9ed898e6eb0.zip
gcc-3e18fdf680e36b07690ce858c23de9ed898e6eb0.tar.gz
gcc-3e18fdf680e36b07690ce858c23de9ed898e6eb0.tar.bz2
invoke.texi (i386 Options): Delete references to -malign-jumps, -malign-loops, -malign-functions.
* 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. From-SVN: r41825
-rw-r--r--gcc/ChangeLog17
-rw-r--r--gcc/config/i386/i386.c68
-rw-r--r--gcc/config/i386/i386.h22
-rw-r--r--gcc/invoke.texi23
4 files changed, 59 insertions, 71 deletions
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 <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
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,