GCC Middle and Back End API Reference
store_info Struct Reference
Collaboration diagram for store_info:

Data Fields

bool is_set
bool is_large
int group_id
cselib_valcse_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_infonext
rtx rhs
rtx const_rhs
struct insn_inforedundant_reason

Detailed Description

   This structure holds information about a candidate store.  

Field Documentation

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.  

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