|
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.