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
 
enum machine_mode mode: MACHINE_MODE_BITSIZE
 
unsigned int src_in_memory: 1
 
unsigned int src_volatile: 1
 
unsigned int is_fake_set: 1
 
unsigned src_const_hash
 
rtx src_const
 
struct table_eltsrc_const_elt
 
struct table_eltdest_addr_elt
 

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

◆ dest_addr_elt

struct table_elt* set::dest_addr_elt

◆ dest_hash

unsigned set::dest_hash

◆ inner_dest

rtx set::inner_dest

◆ is_fake_set

unsigned int set::is_fake_set

Referenced by add_to_set().

◆ mode

enum machine_mode set::mode

◆ rtl

rtx set::rtl

Referenced by add_to_set(), and canonicalize_insn().

◆ src

◆ src_const

rtx set::src_const

◆ src_const_elt

struct table_elt* set::src_const_elt

◆ src_const_hash

unsigned set::src_const_hash

◆ src_elt

struct table_elt* set::src_elt

◆ src_hash

unsigned set::src_hash

◆ src_in_memory

unsigned int set::src_in_memory

◆ src_volatile

unsigned int set::src_volatile

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