Copyright (C) 2000-2012 |
GNU Info (gcc-295.info)Caller SavesCaller-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 |