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 |
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 parser::parse_expr(), and parser::parse_pattern().
|
overridevirtual |
Generate transform code for an expression.
Reimplemented from operand.
References id_base::CODE, fail_label, fatal_at(), fprintf_indent(), get_operand_type(), ggc_alloc(), i, is_conversion(), operand::location, NULL, and startswith().
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_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 dt_simplify::gen_1(), and parser::parse_expr().
bool expr::force_leaf |
Referenced by dt_simplify::gen_1(), and parser::parse_expr().
bool expr::force_single_use |
Referenced by parser::parse_expr(), and capture_info::walk_match().
hashval_t expr::hash |
Referenced by iv_inv_expr_hasher::hash(), insert_expr_in_table(), and lookup_expr_in_table().
bool expr::is_commutative |
Referenced by commutate(), and parser::parse_expr().
bool expr::is_generic |
Referenced by cmp_operand(), and dt_operand::gen_gimple_expr().
|
inherited |
id_base* expr::operation |
Referenced by inchash::add_hashable_expr(), append_op(), avail_expr_hash(), capture_info::capture_info(), cmp_operand(), commutate(), expr_hash_elt::expr_hash_elt(), decision_tree::gen(), dt_simplify::gen_1(), dt_operand::gen_generic_expr(), dt_operand::gen_gimple_expr(), dt_node::gen_kids_1(), has_opt(), initialize_expr_from_cond(), lower_cond(), lower_opt(), parser::parse_expr(), parser::parse_pattern(), avail_exprs_stack::simplify_binary_operation(), and capture_info::walk_match().
Referenced by has_opt(), lower_opt(), and parser::parse_expr().