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.