GCC Middle and Back End API Reference
|
Data Fields | |
rtx | dest |
rtx | src |
int | bitmap_index |
struct expr * | next_same_hash |
struct occr * | avail_occr |
rtx | expr |
struct occr * | antic_occr |
rtx | reaching_reg |
int | max_distance |
hashval_t | hash |
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.
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().
rtx expr::src |
Referenced by find_implicit_sets(), implicit_set_cond_p(), reg_available_p(), and try_replace_reg().