GCC Middle and Back End API Reference
dt_node Class Reference
Inheritance diagram for dt_node:
Collaboration diagram for dt_node:

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_nodeappend_node (dt_node *)
 
dt_nodeappend_op (operand *, dt_node *parent, unsigned pos)
 
dt_nodeappend_true_op (operand *, dt_node *parent, unsigned pos)
 
dt_nodeappend_match_op (operand *, dt_operand *, dt_node *parent, unsigned pos)
 
dt_nodeappend_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_nodeparent
 
vec< dt_node * > kids
 
unsigned num_leafs
 
unsigned total_size
 
unsigned max_level
 

Detailed Description

Decision tree base class, used for DT_NODE.   

Member Enumeration Documentation

◆ dt_type

Enumerator
DT_NODE 
DT_OPERAND 
DT_TRUE 
DT_MATCH 
DT_SIMPLIFY 

Constructor & Destructor Documentation

◆ dt_node()

dt_node::dt_node ( enum dt_type type_,
dt_node * parent_ )
inline

Member Function Documentation

◆ analyze()

void dt_node::analyze ( sinfo_map_t & map)
Analyze the node and its children.   

References ggc_alloc(), i, dt_simplify::info, map, MAX, NULL, sinfo::s, and si.

◆ append_match_op()

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 ggc_alloc().

Referenced by decision_tree::insert_operand().

◆ append_node()

dt_node * dt_node::append_node ( dt_node * n)
Append N to the decision tree if it there is not already an existing
identical child.   

References decision_tree::find_node(), ggc_alloc(), and level.

◆ append_op()

dt_node * dt_node::append_op ( operand * op,
dt_node * parent,
unsigned pos )
Append OP to the decision tree.   

References ggc_alloc().

Referenced by decision_tree::insert_operand().

◆ append_simplify()

dt_node * dt_node::append_simplify ( simplify * s,
unsigned pattern_no,
dt_operand ** indexes )
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_true_op()

dt_node * dt_node::append_true_op ( operand * op,
dt_node * parent,
unsigned pos )
Append a DT_TRUE decision tree node.   

References ggc_alloc().

Referenced by decision_tree::insert_operand().

◆ gen()

virtual void dt_node::gen ( FILE * ,
int ,
bool ,
int  )
inlinevirtual

Reimplemented in dt_operand, and dt_simplify.

◆ gen_kids()

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 DT_MATCH, DT_OPERAND, DT_SIMPLIFY, 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().

◆ gen_kids_1()

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 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.

Field Documentation

◆ kids

◆ level

unsigned dt_node::level

◆ max_level

unsigned dt_node::max_level

◆ num_leafs

unsigned dt_node::num_leafs

◆ parent

dt_node* dt_node::parent

◆ total_size

unsigned dt_node::total_size

◆ type


The documentation for this class was generated from the following file: