|
GCC Middle and Back End API Reference
|
#include <df.h>

Data Fields | |
| ENUM_BITFIELD(df_ref_class) cl ENUM_BITFIELD(df_ref_type) type int | flags: 16 |
| unsigned int | regno |
| rtx | reg |
| struct df_link * | chain |
| struct df_insn_info * | insn_info |
| union df_ref_d * | next_reg |
| union df_ref_d * | prev_reg |
| int | id |
| unsigned int | ref_order |
Define a register reference structure. One of these is allocated for every register reference (use or def). Note some register references (e.g., post_inc, subreg) generate both a def and a use.
| struct df_link* df_base_ref::chain |
| ENUM_BITFIELD (df_ref_class) cl ENUM_BITFIELD (df_ref_type) type int df_base_ref::flags |
These three bitfields are intentionally oversized, in the hope that accesses to 8 and 16-bit fields will usually be quicker. Type of ref.
| int df_base_ref::id |
Location in the ref table. This is only valid after a call to df_maybe_reorganize_[use,def]_refs which is an expensive operation.
| struct df_insn_info* df_base_ref::insn_info |
Pointer to the insn info of the containing instruction. FIXME! Currently this is NULL for artificial refs but this will be used when FUDs are added.
| union df_ref_d* df_base_ref::next_reg |
For each regno, there are three chains of refs, one for the uses, the eq_uses and the defs. These chains go through the refs themselves rather than using an external structure.
| union df_ref_d* df_base_ref::prev_reg |
| unsigned int df_base_ref::ref_order |
The index at which the operand was scanned in the insn. This is used to totally order the refs in an insn.
| rtx df_base_ref::reg |
| unsigned int df_base_ref::regno |