GNU Info

Info Node: (gcc-295.info)Caller Saves

(gcc-295.info)Caller Saves


Next: Function Entry Prev: Aggregate Return Up: Stack and Calling
Enter node , (file) or (file)node

Caller-Saves Register Allocation
--------------------------------

   If you enable it, GNU CC can save registers around function calls.
This makes it possible to use call-clobbered registers to hold
variables that must live across calls.

`DEFAULT_CALLER_SAVES'
     Define this macro if function calls on the target machine do not
     preserve any registers; in other words, if `CALL_USED_REGISTERS'
     has 1 for all registers.  When defined, this macro enables
     `-fcaller-saves' by default for all optimization levels.  It has
     no effect for optimization levels 2 and higher, where
     `-fcaller-saves' is the default.

`CALLER_SAVE_PROFITABLE (REFS, CALLS)'
     A C expression to determine whether it is worthwhile to consider
     placing a pseudo-register in a call-clobbered hard register and
     saving and restoring it around each function call.  The expression
     should be 1 when this is worth doing, and 0 otherwise.

     If you don't define this macro, a default is used which is good on
     most machines: `4 * CALLS < REFS'.

`HARD_REGNO_CALLER_SAVE_MODE (REGNO, NREGS)'
     A C expression specifying which mode is required for saving NREGS
     of a pseudo-register in call-clobbered hard register REGNO.  If
     REGNO is unsuitable for caller save, `VOIDmode' should be
     returned.  For most machines this macro need not be defined since
     GCC will select the smallest suitable mode.


automatically generated by info2www version 1.2.2.9