GCC Middle and Back End API Reference
|
#include <regrename.h>
Data Fields | |
struct du_head * | next_chain |
struct du_chain * | first |
struct du_chain * | last |
unsigned | regno |
int | nregs |
unsigned | id |
bitmap_head | conflicts |
HARD_REG_SET | hard_conflicts |
unsigned int | need_caller_save_reg:1 |
unsigned int | cannot_rename:1 |
We keep linked lists of DU_HEAD structures, each of which describes a chain of occurrences of a reg.
unsigned int du_head::cannot_rename |
Nonzero if the register is used in a way that prevents renaming, such as the SET_DEST of a CALL_INSN or an asm operand that used to be a hard register.
Referenced by note_sets_clobbers(), record_operand_use(), and set_incoming_from_chain().
bitmap_head du_head::conflicts |
A bitmap to record conflicts with other chains.
Referenced by free_chain_data(), record_operand_use(), and set_incoming_from_chain().
struct du_chain* du_head::first |
The first and last elements of this chain.
Referenced by merge_overlapping_regs(), regrename_chain_from_id(), and set_incoming_from_chain().
HARD_REG_SET du_head::hard_conflicts |
Conflicts with untracked hard registers.
Referenced by set_incoming_from_chain().
unsigned du_head::id |
A unique id to be used as an index into the conflicts bitmaps.
Referenced by note_sets_clobbers(), record_operand_use(), and set_incoming_from_chain().
struct du_chain * du_head::last |
Referenced by set_incoming_from_chain().
unsigned int du_head::need_caller_save_reg |
Nonzero if the chain crosses a call.
Referenced by record_operand_use(), and set_incoming_from_chain().
struct du_head* du_head::next_chain |
The next chain.
Referenced by free_chain_data(), record_operand_use(), and verify_reg_tracked().
int du_head::nregs |
Referenced by record_operand_use(), and regrename_chain_from_id().
unsigned du_head::regno |
Describes the register being tracked.
Referenced by note_sets_clobbers(), record_operand_use(), and regrename_chain_from_id().