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

Data Fields

rtx rtl
rtx src
struct table_eltsrc_elt
unsigned src_hash
unsigned dest_hash
rtx inner_dest
char src_in_memory
char src_volatile

Detailed Description

   CSE processing for one instruction.

   Most "true" common subexpressions are mostly optimized away in GIMPLE,
   but the few that "leak through" are cleaned up by cse_insn, and complex
   addressing modes are often formed here.

   The main function is cse_insn, and between here and that function
   a couple of helper functions is defined to keep the size of cse_insn
   within reasonable proportions.
   
   Data is shared between the main and helper functions via STRUCT SET,
   that contains all data related for every set in the instruction that
   is being processed.
   
   Note that cse_main processes all sets in the instruction.  Most
   passes in GCC only process simple SET insns or single_set insns, but
   CSE processes insns with multiple sets as well.  
   Data on one SET contained in the instruction.  

Field Documentation

unsigned set::dest_hash
     Hash value for the SET_DEST.  
rtx set::inner_dest
     The SET_DEST, with SUBREG, etc., stripped.  
rtx set::rtl
     The SET rtx itself.  
rtx set::src
     The SET_SRC of the rtx (the original value, if it is changing).  

Referenced by try_back_substitute_reg().

struct table_elt* set::src_elt
     The hash-table element for the SET_SRC of the SET.  
unsigned set::src_hash
     Hash value for the SET_SRC.  
char set::src_in_memory
     Nonzero if the SET_SRC is in memory.  
char set::src_volatile
     Nonzero if the SET_SRC contains something
     whose value cannot be predicted and understood.  

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