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

Data Fields

rtx dest
rtx src
int bitmap_index
struct exprnext_same_hash
struct occravail_occr
rtx expr
struct occrantic_occr
rtx reaching_reg
int max_distance
hashval_t hash

Detailed Description

Hash table entry for assignment expressions.

Hash table of expressions.

We need to keep a hash table of expressions. The table entries are of type 'struct expr', and for each expression there is a single linked list of occurrences. Expression elements in the hash table.


Field Documentation

struct occr* expr::antic_occr

List of anticipatable occurrences in basic blocks in the function. An "anticipatable occurrence" is one that is the first occurrence in the basic block, the operands are not modified in the basic block prior to the occurrence and the output is not used between the start of the block and the occurrence.

Referenced by free_gcse_mem(), hash_expr(), and should_hoist_expr_to_dom().

struct occr * expr::avail_occr

List of available occurrence in basic blocks in the function. An "available occurrence" is one that is the last occurrence in the basic block and whose operands are not modified by following statements in the basic block [including this insn].

List of available occurrence in basic blocks in the function. An "available occurrence" is one that is the last occurrence in the basic block and the operands are not modified by following statements in the basic block [including this insn].

List of available occurrence in basic blocks in the function.

Referenced by free_gcse_mem(), and pre_edge_insert().

int expr::bitmap_index

Index in the available expression bitmaps.

Referenced by free_gcse_mem(), insert_insn_end_basic_block(), and process_insert_insn().

rtx expr::dest

The expression (DEST := SRC).

Referenced by find_implicit_sets(), and reg_available_p().

rtx expr::expr

The expression.

The expression (SET_SRC for expressions, PATTERN for assignments).

Referenced by alloc_gcse_mem(), free_gcse_mem(), insert_insn_end_basic_block(), and load_killed_in_block_p().

hashval_t expr::hash

The same hash for this entry.

Referenced by load_killed_in_block_p().

int expr::max_distance

Maximum distance in instructions this expression can travel. We avoid moving simple expressions for more than a few instructions to keep register pressure under control. A value of "0" removes restrictions on how far the expression can travel.

struct expr * expr::next_same_hash

Next entry with the same hash.

Referenced by load_killed_in_block_p(), and reg_available_p().

rtx expr::reaching_reg

Non-null if the computation is PRE redundant. The value is the newly created pseudo-reg to record a copy of the expression in all the places that reach the redundant copy.

Referenced by insert_insn_end_basic_block().


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