|
GCC Middle and Back End API Reference
|
#include <reload.h>
Public Member Functions | |
| enum | machine_mode (x_regno_save_mode[FIRST_PSEUDO_REGISTER][MAX_MOVE_MAX/MIN_UNITS_PER_WORD+1]) |
Data Fields | |
| bool | x_indirect_symref_ok |
| bool | x_double_reg_address_ok |
| bool | x_spill_indirect_levels |
| bool | x_caller_save_initialized_p |
| int | x_cached_reg_save_code [FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE] |
| int | x_cached_reg_restore_code [FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE] |
Target-dependent globals.
| enum target_reload::machine_mode | ( | x_regno_save_mode | [FIRST_PSEUDO_REGISTER][MAX_MOVE_MAX/MIN_UNITS_PER_WORD+1] | ) |
Modes for each hard register that we can save. The smallest mode is wide
enough to save the entire contents of the register. When saving the
register because it is live we first try to save in multi-register modes.
If that is not possible the save is done one register at a time.
| int target_reload::x_cached_reg_restore_code[FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE] |
| int target_reload::x_cached_reg_save_code[FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE] |
We will only make a register eligible for caller-save if it can be
saved in its widest mode with a simple SET insn as long as the memory
address is valid. We record the INSN_CODE is those insns here since
when we emit them, the addresses might not be valid, so they might not
be recognized.
| bool target_reload::x_caller_save_initialized_p |
True if caller-save has been reinitialized.
| bool target_reload::x_double_reg_address_ok |
Nonzero if an address (plus (reg frame_pointer) (reg ...)) is valid.
| bool target_reload::x_indirect_symref_ok |
Nonzero if indirect addressing is supported when the innermost MEM is
of the form (MEM (SYMBOL_REF sym)). It is assumed that the level to
which these are valid is the same as spill_indirect_levels, above.
| bool target_reload::x_spill_indirect_levels |
Nonzero if indirect addressing is supported on the machine; this means
that spilling (REG n) does not require reloading it into a register in
order to do (MEM (REG n)) or (MEM (PLUS (REG n) (CONST_INT c))). The
value indicates the level of indirect addressing supported, e.g., two
means that (MEM (MEM (REG n))) is also valid if (REG n) does not get
a hard register.