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 |
References expr_type, false, force_leaf, force_single_use, is_commutative, is_generic, match_phi, NULL, operand::OP_EXPR, operand::operand(), operation, ops, opt_grp, and vNULL.
|
inline |
References expr, expr_type, force_leaf, force_single_use, is_commutative, is_generic, operand::location, match_phi, operand::OP_EXPR, operand::operand(), operation, ops, opt_grp, and vNULL.
|
inline |
References operand::operand(), and ops.
Referenced by lower_cond(), lower_opt(), parser::parse_expr(), and parser::parse_pattern().
|
overridevirtual |
Generate transform code for an expression.
Reimplemented from operand.
References as_a(), id_base::CODE, dyn_cast(), expr_type, fail_label, fatal_at(), force_leaf, fprintf_indent(), get_operand_type(), i, id_base::id, is_a(), is_conversion(), id_base::kind, operand::location, NULL, operation, ops, startswith(), and operand::type.
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(), insert_insn_start_basic_block(), pre_delete(), pre_edge_insert(), pre_expr_reaches_here_p_work(), pre_gcse(), pre_insert_copy_insn(), prune_expressions(), prune_hardreg_uses(), and should_hoist_expr_to_dom().
rtx expr::expr |
References expr.
Referenced by compute_expr_transp(), compute_local_properties(), dump_expr_hash_table_entry(), dump_hash_table(), expr_hasher::equal(), expr(), expr, 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 expr(), expr(), dt_simplify::gen_1(), gen_transform(), and parser::parse_expr().
bool expr::force_leaf |
Referenced by expr(), expr(), dt_simplify::gen_1(), gen_transform(), and parser::parse_expr().
bool expr::force_single_use |
Referenced by expr(), expr(), parser::parse_expr(), and capture_info::walk_match().
hashval_t expr::hash |
bool expr::is_commutative |
Referenced by expr(), expr(), and parser::parse_expr().
bool expr::is_generic |
Referenced by cmp_operand(), expr(), expr(), dt_operand::gen_gimple_expr(), and dt_node::gen_kids().
|
inherited |
bool expr::match_phi |
Referenced by cmp_operand(), expr(), expr(), dt_node::gen_kids_1(), and parser::parse_expr().
id_base* expr::operation |
Referenced by capture_info::capture_info(), cmp_operand(), contains_id(), expr(), expr(), fns_cmp(), decision_tree::gen(), dt_simplify::gen_1(), dt_operand::gen_generic_expr(), dt_operand::gen_gimple_expr(), dt_node::gen_kids(), dt_node::gen_kids_1(), gen_transform(), 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(), cmp_operand(), commutate(), contains_id(), expr(), expr(), decision_tree::gen(), dt_simplify::gen_1(), dt_operand::gen_generic_expr(), dt_operand::gen_gimple_expr(), dt_node::gen_kids(), dt_node::gen_kids_1(), gen_transform(), has_opt(), initialize_expr_from_cond(), decision_tree::insert_operand(), lower_cond(), lower_opt(), parser::parse_expr(), parser::parse_pattern(), avail_exprs_stack::simplify_binary_operation(), walk_captures(), capture_info::walk_match(), and capture_info::walk_result().
unsigned char expr::opt_grp |
Referenced by expr(), expr(), has_opt(), lower_opt(), and parser::parse_expr().
|
inherited |
Referenced by inchash::add_hashable_expr(), cmp_operand(), compare_op(), dt_simplify::gen_1(), dt_node::gen_kids(), expr::gen_transform(), initialize_expr_from_cond(), lra_set_insn_recog_data(), operand(), parser::parse_simplify(), phi_translate_1(), and avail_exprs_stack::simplify_binary_operation().