GCC Middle and Back End API Reference
|
Data Fields | |
bool | is_set |
bool | is_large |
int | group_id |
cselib_val * | cse_base |
rtx | mem |
rtx | mem_addr |
alias_set_type | alias_set |
HOST_WIDE_INT | begin |
HOST_WIDE_INT | end |
union { | |
unsigned HOST_WIDE_INT small_bitmask | |
struct { | |
bitmap bmap | |
int count | |
} large | |
} | positions_needed |
struct store_info * | next |
rtx | rhs |
rtx | const_rhs |
struct insn_info * | redundant_reason |
This structure holds information about a candidate store.
alias_set_type store_info::alias_set |
If this is non-zero, it is the alias set of a spill location.
Referenced by dse_step3().
HOST_WIDE_INT store_info::begin |
The offset of the first and byte before the last byte associated with the operation.
Referenced by check_mem_read_rtx(), dse_step3(), and find_shift_sequence().
bitmap store_info::bmap |
A bitmap with one bit per byte. Cleared bit means the position is needed. Used if IS_LARGE is false.
rtx store_info::const_rhs |
If rhs is or holds a constant, this contains that constant, otherwise NULL.
Referenced by find_shift_sequence().
int store_info::count |
Number of set bits (i.e. unneeded bytes) in BITMAP. If it is equal to END - BEGIN, the whole store is unused.
cselib_val* store_info::cse_base |
This is the cselib value.
HOST_WIDE_INT store_info::end |
Referenced by find_shift_sequence().
int store_info::group_id |
The id of the mem group of the base address. If rtx_varies_p is true, this is -1. Otherwise, it is the index into the group table.
Referenced by dse_step3().
bool store_info::is_large |
False if a single HOST_WIDE_INT bitmap is used for positions_needed.
bool store_info::is_set |
False means this is a clobber.
Referenced by check_mem_read_use(), and dse_step3().
struct { ... } store_info::large |
rtx store_info::mem |
This canonized mem.
Referenced by find_shift_sequence().
rtx store_info::mem_addr |
Canonized MEM address for use by canon_true_dependence.
struct store_info* store_info::next |
The next store info for this insn.
Referenced by check_mem_read_use(), and dse_step3().
union { ... } store_info::positions_needed |
struct insn_info* store_info::redundant_reason |
Set if this store stores the same constant value as REDUNDANT_REASON insn stored. These aren't eliminated early, because doing that might prevent the earlier larger store to be eliminated.
Referenced by dse_transfer_function().
rtx store_info::rhs |
The right hand side of the store. This is used if there is a subsequent reload of the mems address somewhere later in the basic block.
Referenced by check_mem_read_rtx(), and find_shift_sequence().
unsigned HOST_WIDE_INT store_info::small_bitmask |
A bitmask as wide as the number of bytes in the word that contains a 1 if the byte may be needed. The store is unused if all of the bits are 0. This is used if IS_LARGE is false.