defaults.h (FRAME_POINTER_REQUIRED): Provide default.

* 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.

From-SVN: r147072
This commit is contained in:
Anatoly Sokolov 2009-05-03 15:25:20 +04:00 committed by Anatoly Sokolov
parent 0453fa897a
commit aea88c05c9
19 changed files with 34 additions and 74 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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}, \

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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}}

View file

@ -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

View file

@ -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 }, \

View file

@ -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

View file

@ -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}, \

View file

@ -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}, \

View file

@ -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

View file

@ -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 */

View file

@ -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