DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(gcc.info) Caller Saves

Info Catalog (gcc.info) Aggregate Return (gcc.info) Stack and Calling (gcc.info) Function Entry
 
 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.
 
Info Catalog (gcc.info) Aggregate Return (gcc.info) Stack and Calling (gcc.info) Function Entry
automatically generated byinfo2html