#include <hard-reg-set.h>
Field Documentation
Contains registers that are fixed use -- i.e. in fixed_reg_set -- or
a function value return register or TARGET_STRUCT_VALUE_RTX or
STATIC_CHAIN_REGNUM. These are the registers that cannot hold quantities
across calls even if we are willing to save and restore them.
char target_hard_regs::x_call_really_used_regs[FIRST_PSEUDO_REGISTER] |
The same info as a HARD_REG_SET.
char target_hard_regs::x_call_used_regs[FIRST_PSEUDO_REGISTER] |
Indexed by hard register number, contains 1 for registers
that are fixed use or are clobbered by function calls.
These are the registers that cannot be used to allocate
a pseudo reg whose life crosses calls.
bool target_hard_regs::x_class_only_fixed_regs[N_REG_CLASSES] |
For each reg class, a boolean saying whether the class contains only
fixed registers.
char target_hard_regs::x_fixed_regs[FIRST_PSEUDO_REGISTER] |
Indexed by hard register number, contains 1 for registers
that are fixed use (stack pointer, pc, frame pointer, etc.;.
These are the registers that cannot be used to allocate
a pseudo reg whose life does not cross calls.
Referenced by hard_reg_set_iter_next().
int target_hard_regs::x_inv_reg_alloc_order[FIRST_PSEUDO_REGISTER] |
The inverse of reg_alloc_order.
Call used hard registers which can not be saved because there is no
insn for this.
The set of registers that should be considered to be register
operands. It is a subset of x_accessible_reg_set.
Referenced by hard_reg_set_iter_next().
int target_hard_regs::x_reg_alloc_order[FIRST_PSEUDO_REGISTER] |
Table of register numbers in the order in which to try to use them.
HARD_REG_SET target_hard_regs::x_reg_class_contents[N_REG_CLASSES] |
For each reg class, a HARD_REG_SET saying which registers are in it.
unsigned int target_hard_regs::x_reg_class_size[N_REG_CLASSES] |
For each reg class, number of regs it contains.
enum reg_class target_hard_regs::x_reg_class_subclasses[N_REG_CLASSES][N_REG_CLASSES] |
For each reg class, table listing all the classes contained in it.
enum reg_class target_hard_regs::x_reg_class_subunion[N_REG_CLASSES][N_REG_CLASSES] |
For each pair of reg classes,
a largest reg class contained in their union.
enum reg_class target_hard_regs::x_reg_class_superunion[N_REG_CLASSES][N_REG_CLASSES] |
For each pair of reg classes,
the smallest reg class that contains their union.
const char* target_hard_regs::x_reg_names[FIRST_PSEUDO_REGISTER] |
Vector indexed by hardware reg giving its name.
Contains 1 for registers that are set or clobbered by calls.
??? Ideally, this would be just call_used_regs plus global_regs, but
for someone's bright idea to have call_used_regs strictly include
fixed_regs. Which leaves us guessing as to the set of fixed_regs
that are actually preserved. We know for sure that those associated
with the local stack frame are safe, but scant others.
The documentation for this struct was generated from the following file: