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

Data Fields

struct gcse_exprexpr
 
rtx pattern
 
rtx pattern_regs
 
vec< rtx_insn * > stores
 
struct ls_exprnext
 
int invalid
 
int index
 
unsigned int hash_index
 
rtx reaching_reg
 

Detailed Description

This is a list of expressions which are MEMs and will be used by load
or store motion.
Load motion tracks MEMs which aren't killed by anything except itself,
i.e. loads and stores to a single location.
We can then allow movement of these MEM refs with a little special
allowance. (all stores copy the same value to the reaching reg used
for the loads).  This means all values used to store into memory must have
no side effects so we can re-issue the setter value.   

Field Documentation

◆ expr

struct gcse_expr* ls_expr::expr

Referenced by ldst_entry(), and trim_ld_motion_mems().

◆ hash_index

unsigned int ls_expr::hash_index

Referenced by ldst_entry(), and trim_ld_motion_mems().

◆ index

int ls_expr::index

Referenced by ldst_entry(), and print_ldst_list().

◆ invalid

◆ next

◆ pattern

◆ pattern_regs

rtx ls_expr::pattern_regs

Referenced by ldst_entry().

◆ reaching_reg

rtx ls_expr::reaching_reg

Referenced by ldst_entry().

◆ stores


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