GCC Middle and Back End API Reference
|
Data Fields | |
struct btr_def_s * | next_this_bb |
struct btr_def_s * | next_this_group |
basic_block | bb |
int | luid |
rtx | insn |
int | btr |
int | cost |
btr_def_group | group |
btr_user | uses |
char | has_ambiguous_use |
char | other_btr_uses_before_def |
char | other_btr_uses_after_use |
char | own_end |
bitmap | live_range |
btr_def structs appear on three lists:
basic_block btr_def_s::bb |
Referenced by btr_def_live_range(), and migrate_btr_def().
int btr_def_s::btr |
Referenced by btr_def_live_range(), and compute_out().
int btr_def_s::cost |
btr_def_group btr_def_s::group |
For a branch register setting insn that has a constant source (i.e. a label), group links together all the insns with the same source. For other branch register setting insns, group is NULL.
char btr_def_s::has_ambiguous_use |
If this def has a reaching use which is not a simple use in a branch instruction, then has_ambiguous_use will be true, and we will not attempt to migrate this definition.
Referenced by btr_def_live_range().
rtx btr_def_s::insn |
Referenced by btr_def_live_range().
bitmap btr_def_s::live_range |
Referenced by btr_def_live_range(), and migrate_btr_def().
int btr_def_s::luid |
struct btr_def_s* btr_def_s::next_this_bb |
struct btr_def_s* btr_def_s::next_this_group |
char btr_def_s::other_btr_uses_after_use |
char btr_def_s::other_btr_uses_before_def |
live_range is an approximation to the true live range for this def/use web, because it records the set of blocks that contain the live range. There could be other live ranges for the same branch register in that set of blocks, either in the block containing the def (before the def), or in a block containing a use (after the use). If there are such other live ranges, then other_btr_uses_before_def or other_btr_uses_after_use must be set true as appropriate.
char btr_def_s::own_end |
We set own_end when we have moved a definition into a dominator. Thus, when a later combination removes this definition again, we know to clear out trs_live_at_end again.
btr_user btr_def_s::uses |
Referenced by btr_def_live_range(), and build_btr_def_use_webs().