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_simplify (simplify *s_, unsigned pattern_no_, dt_operand **indexes_) | |
void | gen_1 (FILE *, int, bool, operand *) |
void | gen (FILE *f, int, bool, int) final override |
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 **) |
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 | |
simplify * | s |
unsigned | pattern_no |
dt_operand ** | indexes |
sinfo * | info |
enum dt_type | type |
unsigned | level |
dt_node * | parent |
vec< dt_node * > | kids |
unsigned | num_leafs |
unsigned | total_size |
unsigned | max_level |
Leaf node of the decision tree, used for DT_SIMPLIFY.
|
inherited |
|
inline |
|
inherited |
|
inherited |
Append a DT_MATCH decision tree node.
References ggc_alloc().
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(), ggc_alloc(), and dt_node::level.
Append OP to the decision tree.
References ggc_alloc().
Referenced by decision_tree::insert_operand().
|
inherited |
Append S to the decision tree.
References ggc_alloc(), i, operand::location, simplify::match, print_operand(), verbose, and warning_at().
Referenced by decision_tree::insert().
Append a DT_TRUE decision tree node.
References ggc_alloc().
Referenced by decision_tree::insert_operand().
Generate code for the '(if ...)', '(with ..)' and actual transform step of a '(simplify ...)' or '(match ...)'. This handles everything that is not part of the decision tree (simplify->match).
Reimplemented from dt_node.
References fprintf_indent(), gcc_unreachable, get_name(), ggc_alloc(), i, and output_line_directive().
Generate code for the '(if ...)', '(with ..)' and actual transform step of a '(simplify ...)' or '(match ...)'. This handles everything that is not part of the decision tree (simplify->match). Main recursive worker.
References emit_logging_call(), expr::expr_type, fail_label, expr::force_leaf, capture_info::force_no_side_effects, fprintf_indent(), gcc_unreachable, operand::gen_transform(), get_operand_type(), ggc_alloc(), i, id_base::id, capture_info::info, NULL, operand::OP_C_EXPR, operand::OP_CAPTURE, operand::OP_EXPR, expr::operation, expr::ops, output_line_directive(), simplify::SIMPLIFY, operand::type, verbose, and warning_at().
Referenced by decision_tree::gen().
Generate matching code for the children of the decision tree node.
References dt_node::DT_MATCH, dt_node::DT_OPERAND, dt_node::DT_SIMPLIFY, dt_node::DT_TRUE, id_base::FN, fns_cmp(), gcc_unreachable, ggc_alloc(), i, dt_operand::op, operand::OP_PREDICATE, id_base::PREDICATE, user_id::substitutes, and operand::type.
Referenced by write_predicate().
|
inherited |
Generate matching code for the children of the decision tree node.
References id_base::FN, fprintf_indent(), gcc_assert, ggc_alloc(), i, id_base::id, id_base::kind, id_base::nargs, NULL, expr::operation, and expr::ops.
dt_operand** dt_simplify::indexes |
Referenced by decision_tree::print_node().
sinfo* dt_simplify::info |
Referenced by dt_node::analyze().
Referenced by decision_tree::insert_operand(), and decision_tree::print_node().
|
inherited |
Referenced by dt_node::append_node(), and decision_tree::print_node().
|
inherited |
|
inherited |
|
inherited |
Referenced by decision_tree::print_node().
unsigned dt_simplify::pattern_no |
Referenced by decision_tree::print_node().
simplify* dt_simplify::s |
Referenced by decision_tree::gen(), and decision_tree::print_node().
|
inherited |
Referenced by decision_tree::cmp_node(), decision_tree::find_node(), and decision_tree::print_node().