GCC Middle and Back End API Reference
|
Public Types | |
enum | op_type { OP_PREDICATE , OP_EXPR , OP_CAPTURE , OP_C_EXPR , OP_IF , OP_WITH } |
Public Member Functions | |
expr (id_base *operation_, location_t loc, bool is_commutative_=false) | |
expr (expr *e) | |
void | append_op (operand *op) |
void | gen_transform (FILE *f, int, const char *, bool, int, const char *, capture_info *, dt_operand **=0, int=0) override |
Data Fields | |
id_base * | operation |
vec< operand * > | ops |
const char * | expr_type |
bool | is_commutative |
bool | is_generic |
bool | force_single_use |
bool | force_leaf |
bool | match_phi |
unsigned char | opt_grp |
rtx | expr |
hashval_t | hash |
unsigned int | bitmap_index |
struct occr * | avail_occr |
enum op_type | type |
location_t | location |
An operand that constitutes an expression. Expressions include function calls and user-defined predicate invocations.
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.
|
inherited |
|
inline |
|
inline |
References ops.
Referenced by lower_cond(), lower_opt(), parser::parse_expr(), parser::parse_pattern(), and replace_id().
|
overridevirtual |
Generate transform code for an expression.
Reimplemented from operand.
References as_a(), id_base::CODE, dyn_cast(), fail_label, fatal_at(), fprintf_indent(), get_operand_type(), i, id_base::id, is_a(), is_conversion(), id_base::kind, operand::location, NULL, and startswith().
struct occr* expr::avail_occr |
unsigned int expr::bitmap_index |
Referenced by compute_expr_transp(), compute_local_properties(), compute_local_properties(), dump_hash_table(), dump_hash_table(), eliminate_partially_redundant_load(), hoist_code(), insert_expr_in_table(), insert_insn_end_basic_block(), pre_delete(), pre_edge_insert(), pre_expr_reaches_here_p_work(), pre_gcse(), pre_insert_copy_insn(), prune_expressions(), and should_hoist_expr_to_dom().
rtx expr::expr |
Referenced by compute_expr_transp(), compute_local_properties(), dump_hash_table(), expr_hasher::equal(), insert_expr_in_table(), lookup_expr_in_table(), pre_insert_copy_insn(), process_insert_insn(), prune_expressions(), should_hoist_expr_to_dom(), trim_ld_motion_mems(), and update_ld_motion_stores().
const char* expr::expr_type |
Referenced by parser::parse_expr().
bool expr::force_leaf |
Referenced by parser::parse_expr().
bool expr::force_single_use |
Referenced by parser::parse_expr(), and capture_info::walk_match().
hashval_t expr::hash |
Referenced by expr_hasher::equal(), iv_inv_expr_hasher::hash(), insert_expr_in_table(), and lookup_expr_in_table().
bool expr::is_commutative |
Referenced by parser::parse_expr().
bool expr::is_generic |
Referenced by cmp_operand(), dt_operand::gen_gimple_expr(), and dt_node::gen_kids().
|
inherited |
bool expr::match_phi |
Referenced by cmp_operand(), dt_node::gen_kids_1(), and parser::parse_expr().
id_base* expr::operation |
Referenced by capture_info::capture_info(), cmp_operand(), contains_id(), fns_cmp(), decision_tree::gen(), dt_operand::gen_generic_expr(), dt_operand::gen_gimple_expr(), dt_node::gen_kids(), dt_node::gen_kids_1(), lower_cond(), parser::parse_expr(), replace_id(), capture_info::walk_match(), and capture_info::walk_result().
Referenced by inchash::add_hashable_expr(), append_op(), avail_expr_hash(), capture_info::capture_info(), commutate(), contains_id(), expr_hash_elt::expr_hash_elt(), decision_tree::gen(), dt_operand::gen_generic_expr(), dt_operand::gen_gimple_expr(), dt_node::gen_kids(), dt_node::gen_kids_1(), has_opt(), initialize_expr_from_cond(), decision_tree::insert_operand(), lower_cond(), lower_opt(), parser::parse_expr(), parser::parse_pattern(), replace_id(), avail_exprs_stack::simplify_binary_operation(), walk_captures(), capture_info::walk_match(), and capture_info::walk_result().
unsigned char expr::opt_grp |
Referenced by has_opt(), lower_opt(), and parser::parse_expr().
|
inherited |