summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog21
-rw-r--r--gcc/config/alpha/alpha.h6
-rw-r--r--gcc/config/h8300/h8300.h6
-rw-r--r--gcc/config/ia64/ia64.h5
-rw-r--r--gcc/config/iq2000/iq2000.h2
-rw-r--r--gcc/config/m68hc11/m68hc11.h6
-rw-r--r--gcc/config/m68k/m68k.h2
-rw-r--r--gcc/config/mcore/mcore.h5
-rw-r--r--gcc/config/mn10300/mn10300.h1
-rw-r--r--gcc/config/pdp11/pdp11.h8
-rw-r--r--gcc/config/picochip/picochip.h3
-rw-r--r--gcc/config/rs6000/rs6000.h6
-rw-r--r--gcc/config/s390/s390.h2
-rw-r--r--gcc/config/sh/sh.h6
-rw-r--r--gcc/config/spu/spu.h2
-rw-r--r--gcc/config/stormy16/stormy16.h2
-rw-r--r--gcc/config/v850/v850.h6
-rw-r--r--gcc/defaults.h4
-rw-r--r--gcc/doc/tm.texi15
19 files changed, 34 insertions, 74 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0bba7cf543a..07a84d6e745 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,24 @@
+2009-05-03 Anatoly Sokolov <aesok@post.ru>
+
+ * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
+ * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
+ * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
+
2009-05-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39940
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h
index 4df364071ba..433823dbbd0 100644
--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -475,12 +475,6 @@ extern enum alpha_fp_trap_mode alpha_fptm;
/* Base register for access to local variables of the function. */
#define HARD_FRAME_POINTER_REGNUM 15
-/* Value should be nonzero if functions must have frame pointers.
- Zero means the frame pointer need not be set up (and parms
- may be accessed via the stack pointer) in functions that seem suitable.
- This is computed in `reload', in reload1.c. */
-#define FRAME_POINTER_REQUIRED 0
-
/* Base register for access to arguments of the function. */
#define ARG_POINTER_REGNUM 31
diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h
index 701223e9c25..7e3711323aa 100644
--- a/gcc/config/h8300/h8300.h
+++ b/gcc/config/h8300/h8300.h
@@ -300,12 +300,6 @@ extern const char * const *h8_reg_names;
/* Base register for access to local variables of the function. */
#define FRAME_POINTER_REGNUM FP_REG
-/* Value should be nonzero if functions must have frame pointers.
- Zero means the frame pointer need not be set up (and parms
- may be accessed via the stack pointer) in functions that seem suitable.
- This is computed in `reload', in reload1.c. */
-#define FRAME_POINTER_REQUIRED 0
-
/* Base register for access to arguments of the function. */
#define ARG_POINTER_REGNUM AP_REG
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index 74e50788326..05957ea12db 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -1005,11 +1005,6 @@ enum reg_class
/* Eliminating the Frame Pointer and the Arg Pointer */
-/* A C expression which is nonzero if a function must have and use a frame
- pointer. This expression is evaluated in the reload pass. If its value is
- nonzero the function will have a frame pointer. */
-#define FRAME_POINTER_REQUIRED 0
-
/* Show we can debug even without a frame pointer. */
#define CAN_DEBUG_WITHOUT_FP
diff --git a/gcc/config/iq2000/iq2000.h b/gcc/config/iq2000/iq2000.h
index 916e4060a5e..acbe569503f 100644
--- a/gcc/config/iq2000/iq2000.h
+++ b/gcc/config/iq2000/iq2000.h
@@ -345,8 +345,6 @@ enum reg_class
/* Eliminating the Frame Pointer and the Arg Pointer. */
-#define FRAME_POINTER_REQUIRED 0
-
#define ELIMINABLE_REGS \
{{ ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{ ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}, \
diff --git a/gcc/config/m68hc11/m68hc11.h b/gcc/config/m68hc11/m68hc11.h
index ee28bb73eaa..5496640b040 100644
--- a/gcc/config/m68hc11/m68hc11.h
+++ b/gcc/config/m68hc11/m68hc11.h
@@ -883,12 +883,6 @@ extern enum reg_class m68hc11_tmp_regs_class;
{FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}}
-/* Value should be nonzero if functions must have frame pointers.
- Zero means the frame pointer need not be set up (and parms may be
- accessed via the stack pointer) in functions that seem suitable.
- This is computed in `reload', in reload1.c. */
-#define FRAME_POINTER_REQUIRED 0
-
/* Given FROM and TO register numbers, say whether this elimination is allowed.
Frame pointer elimination is automatically handled.
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index bb28e887aa9..11477c61ba9 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -453,8 +453,6 @@ along with GCC; see the file COPYING3. If not see
pointer is shifted to %a5 on this target. */
#define FRAME_POINTER_REGNUM A6_REG
-#define FRAME_POINTER_REQUIRED 0
-
/* Base register for access to arguments of the function.
* This isn't a hardware register. It will be eliminated to the
* stack pointer or frame pointer.
diff --git a/gcc/config/mcore/mcore.h b/gcc/config/mcore/mcore.h
index 224491ab05c..bbdc24811b8 100644
--- a/gcc/config/mcore/mcore.h
+++ b/gcc/config/mcore/mcore.h
@@ -303,11 +303,6 @@ extern int mcore_stack_increment;
#define MODES_TIEABLE_P(MODE1, MODE2) \
((MODE1) == (MODE2) || GET_MODE_CLASS (MODE1) == GET_MODE_CLASS (MODE2))
-/* Value should be nonzero if functions must have frame pointers.
- Zero means the frame pointer need not be set up (and parms may be accessed
- via the stack pointer) in functions that seem suitable. */
-#define FRAME_POINTER_REQUIRED 0
-
/* Definitions for register eliminations.
We have two registers that can be eliminated on the MCore. First, the
diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h
index b6486d9cf69..2737d15345c 100644
--- a/gcc/config/mn10300/mn10300.h
+++ b/gcc/config/mn10300/mn10300.h
@@ -491,7 +491,6 @@ enum reg_class {
/* We can debug without frame pointers on the mn10300, so eliminate
them whenever possible. */
-#define FRAME_POINTER_REQUIRED 0
#define CAN_DEBUG_WITHOUT_FP
/* Value is the number of bytes of arguments automatically
diff --git a/gcc/config/pdp11/pdp11.h b/gcc/config/pdp11/pdp11.h
index 285b0e9cd6b..9dbb41eb7c1 100644
--- a/gcc/config/pdp11/pdp11.h
+++ b/gcc/config/pdp11/pdp11.h
@@ -246,14 +246,6 @@ extern const struct real_format pdp11_d_format;
/* Base register for access to local variables of the function. */
#define FRAME_POINTER_REGNUM 5
-/* Value should be nonzero if functions must have frame pointers.
- Zero means the frame pointer need not be set up (and parms
- may be accessed via the stack pointer) in functions that seem suitable.
- This is computed in `reload', in reload1.c.
- */
-
-#define FRAME_POINTER_REQUIRED 0
-
/* Base register for access to arguments of the function. */
#define ARG_POINTER_REGNUM 5
diff --git a/gcc/config/picochip/picochip.h b/gcc/config/picochip/picochip.h
index 24613d634d7..497c1307839 100644
--- a/gcc/config/picochip/picochip.h
+++ b/gcc/config/picochip/picochip.h
@@ -409,9 +409,6 @@ extern const enum reg_class picochip_regno_reg_class[FIRST_PSEUDO_REGISTER];
pointers are eliminated wherever possible, by replacing them with
offsets from the stack pointer. */
-/* We want to get rid of the frame pointer. */
-#define FRAME_POINTER_REQUIRED 0
-
#define ELIMINABLE_REGS \
{{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}}
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 187fe31e34f..5feae4d0db9 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1027,12 +1027,6 @@ extern int rs6000_xilinx_fpu;
/* Base register for access to local variables of the function. */
#define FRAME_POINTER_REGNUM 113
-/* Value should be nonzero if functions must have frame pointers.
- Zero means the frame pointer need not be set up (and parms
- may be accessed via the stack pointer) in functions that seem suitable.
- This is computed in `reload', in reload1.c. */
-#define FRAME_POINTER_REQUIRED 0
-
/* Base register for access to arguments of the function. */
#define ARG_POINTER_REGNUM 67
diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h
index a21bc727aab..c62f6bfa621 100644
--- a/gcc/config/s390/s390.h
+++ b/gcc/config/s390/s390.h
@@ -644,8 +644,6 @@ extern const enum reg_class regclass_map[FIRST_PSEUDO_REGISTER];
/* Frame pointer and argument pointer elimination. */
-#define FRAME_POINTER_REQUIRED 0
-
#define ELIMINABLE_REGS \
{{ FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM }, \
{ FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM }, \
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 51c7edfa2b2..5f5006f7ff4 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -1262,12 +1262,6 @@ extern char sh_additional_register_names[ADDREGNAMES_SIZE] \
#define GOT_SYMBOL_NAME "*_GLOBAL_OFFSET_TABLE_"
-/* Value should be nonzero if functions must have frame pointers.
- Zero means the frame pointer need not be set up (and parms may be accessed
- via the stack pointer) in functions that seem suitable. */
-
-#define FRAME_POINTER_REQUIRED 0
-
/* Definitions for register eliminations.
We have three registers that can be eliminated on the SH. First, the
diff --git a/gcc/config/spu/spu.h b/gcc/config/spu/spu.h
index 8780d1b9002..f8375f18c82 100644
--- a/gcc/config/spu/spu.h
+++ b/gcc/config/spu/spu.h
@@ -314,8 +314,6 @@ targetm.resolve_overloaded_builtin = spu_resolve_overloaded_builtin; \
/* Elimination */
-#define FRAME_POINTER_REQUIRED 0
-
#define ELIMINABLE_REGS \
{{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}, \
diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h
index 2a7338106ee..675b94d9949 100644
--- a/gcc/config/stormy16/stormy16.h
+++ b/gcc/config/stormy16/stormy16.h
@@ -367,8 +367,6 @@ enum reg_class
/* Eliminating the Frame Pointer and the Arg Pointer */
-#define FRAME_POINTER_REQUIRED 0
-
#define ELIMINABLE_REGS \
{ \
{FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
diff --git a/gcc/config/v850/v850.h b/gcc/config/v850/v850.h
index 79c293ab629..b841963bd2b 100644
--- a/gcc/config/v850/v850.h
+++ b/gcc/config/v850/v850.h
@@ -506,12 +506,6 @@ enum reg_class
/* Register in which static-chain is passed to a function. */
#define STATIC_CHAIN_REGNUM 20
-/* Value should be nonzero if functions must have frame pointers.
- Zero means the frame pointer need not be set up (and parms
- may be accessed via the stack pointer) in functions that seem suitable.
- This is computed in `reload', in reload1.c. */
-#define FRAME_POINTER_REQUIRED 0
-
/* If defined, this macro specifies a table of register pairs used to
eliminate unneeded registers that point into the stack frame. If
it is not defined, the only elimination attempted by the compiler
diff --git a/gcc/defaults.h b/gcc/defaults.h
index 53ba930fff2..0be7057fd31 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -969,4 +969,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define GO_IF_MODE_DEPENDENT_ADDRESS(X, WIN)
#endif
+#ifndef FRAME_POINTER_REQUIRED
+#define FRAME_POINTER_REQUIRED false
+#endif
+
#endif /* ! GCC_DEFAULTS_H */
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 3e708ccf882..4765cf6401a 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -3738,15 +3738,16 @@ return @code{@var{regno}}.
This is about eliminating the frame pointer and arg pointer.
@defmac FRAME_POINTER_REQUIRED
-A C expression which is nonzero if a function must have and use a frame
+A C expression which is @code{true} if a function must have and use a frame
pointer. This expression is evaluated in the reload pass. If its value is
-nonzero the function will have a frame pointer.
+@code{true} the function will have a frame pointer.
The expression can in principle examine the current function and decide
-according to the facts, but on most machines the constant 0 or the
-constant 1 suffices. Use 0 when the machine allows code to be generated
-with no frame pointer, and doing so saves some time or space. Use 1
-when there is no possible advantage to avoiding a frame pointer.
+according to the facts, but on most machines the constant @code{false} or the
+constant @code{true} suffices. Use @code{false} when the machine allows code
+to be generated with no frame pointer, and doing so saves some time or space.
+Use @code{true} when there is no possible advantage to avoiding a frame
+pointer.
In certain cases, the compiler does not know how to produce valid code
without a frame pointer. The compiler recognizes those cases and
@@ -3757,6 +3758,8 @@ them.
In a function that does not require a frame pointer, the frame pointer
register can be allocated for ordinary usage, unless you mark it as a
fixed register. See @code{FIXED_REGISTERS} for more information.
+
+Default value is @code{false}.
@end defmac
@findex get_frame_size