GCC Middle and Back End API Reference
|
Public Types | |
enum | dt_type { DT_NODE , DT_OPERAND , DT_TRUE , DT_MATCH , DT_SIMPLIFY } |
Public Member Functions | |
dt_node (enum dt_type type_, dt_node *parent_) | |
dt_node * | append_node (dt_node *) |
dt_node * | append_op (operand *, dt_node *parent, unsigned pos) |
dt_node * | append_true_op (operand *, dt_node *parent, unsigned pos) |
dt_node * | append_match_op (operand *, dt_operand *, dt_node *parent, unsigned pos) |
dt_node * | append_simplify (simplify *, unsigned, dt_operand **) |
virtual void | gen (FILE *, int, bool, int) |
void | gen_kids (FILE *, int, bool, int) |
void | gen_kids_1 (FILE *, int, bool, int, const vec< dt_operand * > &, const vec< dt_operand * > &, const vec< dt_operand * > &, const vec< dt_operand * > &, const vec< dt_operand * > &, const vec< dt_node * > &) |
void | analyze (sinfo_map_t &) |
Data Fields | |
enum dt_type | type |
unsigned | level |
dt_node * | parent |
vec< dt_node * > | kids |
unsigned | num_leafs |
unsigned | total_size |
unsigned | max_level |
Decision tree base class, used for DT_NODE.
enum dt_node::dt_type |
void dt_node::analyze | ( | sinfo_map_t & | map | ) |
dt_node * dt_node::append_match_op | ( | operand * | op, |
dt_operand * | match_dop, | ||
dt_node * | parent, | ||
unsigned | pos ) |
Append a DT_MATCH decision tree node.
References as_a().
Referenced by decision_tree::insert_operand().
Append N to the decision tree if it there is not already an existing identical child.
References decision_tree::find_node(), and level.
Append OP to the decision tree.
References safe_as_a().
Referenced by decision_tree::insert_operand().
dt_node * dt_node::append_simplify | ( | simplify * | s, |
unsigned | pattern_no, | ||
dt_operand ** | indexes ) |
Append S to the decision tree.
References dyn_cast(), i, operand::location, simplify::match, print_operand(), dt_simplify::s, verbose, and warning_at().
Referenced by decision_tree::insert().
Append a DT_TRUE decision tree node.
References safe_as_a().
Referenced by decision_tree::insert_operand().
|
inlinevirtual |
Reimplemented in dt_operand, and dt_simplify.
void dt_node::gen_kids | ( | FILE * | f, |
int | indent, | ||
bool | gimple, | ||
int | depth ) |
Generate matching code for the children of the decision tree node.
References as_a(), DT_MATCH, DT_OPERAND, DT_SIMPLIFY, DT_TRUE, dyn_cast(), id_base::FN, fns_cmp(), gcc_unreachable, i, expr::is_generic, id_base::kind, dt_operand::op, operand::OP_PREDICATE, expr::operation, expr::ops, id_base::PREDICATE, user_id::substitutes, and operand::type.
Referenced by decision_tree::gen(), and write_predicate().
void dt_node::gen_kids_1 | ( | FILE * | f, |
int | indent, | ||
bool | gimple, | ||
int | depth, | ||
const vec< dt_operand * > & | gimple_exprs, | ||
const vec< dt_operand * > & | generic_exprs, | ||
const vec< dt_operand * > & | fns, | ||
const vec< dt_operand * > & | generic_fns, | ||
const vec< dt_operand * > & | preds, | ||
const vec< dt_node * > & | others ) |
Generate matching code for the children of the decision tree node.
References as_a(), dyn_cast(), id_base::FN, fprintf_indent(), gcc_assert, i, id_base::id, id_base::kind, expr::match_phi, id_base::nargs, NULL, expr::operation, and expr::ops.
Referenced by decision_tree::insert_operand(), and decision_tree::print_node().
unsigned dt_node::level |
Referenced by append_node(), and decision_tree::print_node().
unsigned dt_node::max_level |
unsigned dt_node::num_leafs |
dt_node* dt_node::parent |
Referenced by decision_tree::print_node().
unsigned dt_node::total_size |
enum dt_type dt_node::type |