GCC Middle and Back End API Reference
df_base_ref Struct Reference

#include <df.h>

Collaboration diagram for df_base_ref:

Data Fields

ENUM_BITFIELD(df_ref_class) cl
ENUM_BITFIELD(df_ref_type)
type int 
flags: 16
unsigned int regno
rtx reg
struct df_linkchain
struct df_insn_infoinsn_info
union df_ref_dnext_reg
union df_ref_dprev_reg
int id
unsigned int ref_order

Detailed Description

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.


Field Documentation

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

The documentation for this struct was generated from the following file: