If you enable it, GCC 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
     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)
     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)
     VOIDmode should be
returned.  For most machines this macro need not be defined since GCC
will select the smallest suitable mode.