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

Data Fields

struct exprexpr
rtx pattern
rtx pattern_regs
rtx loads
rtx 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

struct expr* ls_expr::expr
unsigned int ls_expr::hash_index
int ls_expr::index
int ls_expr::invalid

Referenced by one_code_hoisting_pass().

rtx ls_expr::loads

Referenced by one_code_hoisting_pass().

struct ls_expr* ls_expr::next
rtx ls_expr::pattern
rtx ls_expr::pattern_regs
rtx ls_expr::reaching_reg
rtx ls_expr::stores

Referenced by one_code_hoisting_pass().


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