#include <hard-reg-set.h>
Field Documentation
The set of registers that actually exist on the current target.
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.
The same info as a HARD_REG_SET.
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.
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.
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: