22#ifndef GCC_GIMPLE_RANGE_FOLD_H
23#define GCC_GIMPLE_RANGE_FOLD_H
69 if (code == GIMPLE_COND)
71 else if (code == GIMPLE_PHI)
73 else if (code == GIMPLE_CALL)
Definition genmatch.cc:845
Definition gimple-range-fold.h:159
bool range_of_call(vrange &r, gcall *call, fur_source &src)
Definition gimple-range-fold.cc:1071
bool condexpr_adjust(vrange &r1, vrange &r2, gimple *, tree cond, tree op1, tree op2, fur_source &src)
Definition gimple-range-fold.cc:1125
bool range_of_cond_expr(vrange &r, gassign *cond, fur_source &src)
Definition gimple-range-fold.cc:1210
bool range_of_address(prange &r, gimple *s, fur_source &src)
Definition gimple-range-fold.cc:824
bool range_of_range_op(vrange &r, gimple_range_op_handler &handler, fur_source &src)
Definition gimple-range-fold.cc:711
void range_of_ssa_name_with_loop_info(vrange &, tree, class loop *, gphi *, fur_source &src)
Definition gimple-range-fold.cc:1262
void relation_fold_and_or(irange &lhs_range, gimple *s, fur_source &src, vrange &op1, vrange &op2)
Definition gimple-range-fold.cc:1294
bool fold_stmt(vrange &r, gimple *s, class fur_source &src, tree name=NULL_TREE)
Definition gimple-range-fold.cc:651
bool range_of_phi(vrange &r, gphi *phi, fur_source &src)
Definition gimple-range-fold.cc:912
Definition gimple-range-fold.h:144
virtual void register_relation(gimple *stmt, relation_kind k, tree op1, tree op2) override
Definition gimple-range-fold.cc:196
fur_depend(gimple *s, range_query *q=NULL)
Definition gimple-range-fold.cc:187
Definition gimple-range-fold.h:105
fur_source(range_query *q=NULL)
Definition gimple-range-fold.cc:56
bool m_depend_p
Definition gimple-range-fold.h:123
void register_outgoing_edges(gcond *, irange &lhs_range, edge e0, edge e1)
Definition gimple-range-fold.cc:1393
virtual bool get_operand(vrange &r, tree expr)
Definition gimple-range-fold.cc:68
virtual bool get_phi_operand(vrange &r, tree expr, edge e)
Definition gimple-range-fold.cc:77
range_query * m_query
Definition gimple-range-fold.h:122
class gimple_outgoing_range * gori()
Definition gimple-range-fold.h:111
virtual void register_relation(gimple *stmt, relation_kind k, tree op1, tree op2)
Definition gimple-range-fold.cc:94
gori_map * gori_ssa() const
Definition gimple-range-fold.h:109
range_query * query() const
Definition gimple-range-fold.h:108
virtual relation_kind query_relation(tree op1, tree op2)
Definition gimple-range-fold.cc:85
Definition gimple-range-fold.h:130
gimple * m_stmt
Definition gimple-range-fold.h:137
virtual bool get_phi_operand(vrange &r, tree expr, edge e) override
Definition gimple-range-fold.cc:169
fur_stmt(gimple *s, range_query *q=NULL)
Definition gimple-range-fold.cc:152
virtual bool get_operand(vrange &r, tree expr) override
Definition gimple-range-fold.cc:160
virtual relation_kind query_relation(tree op1, tree op2) override
Definition gimple-range-fold.cc:179
Definition gimple-range-edge.h:48
Definition gimple-range-op.h:29
Definition gimple-range-gori.h:94
Definition value-range.h:273
Definition value-range.h:384
Definition value-query.h:55
class gori_map * gori_ssa() const
Definition value-query.h:87
class gimple_outgoing_range & gori() const
Definition value-query.h:86
Definition value-relation.h:329
static bool supports_type_p(const_tree type)
Definition value-range.h:959
Definition value-range.h:78
class edge_def * edge
Definition coretypes.h:345
union tree_node * tree
Definition coretypes.h:97
static type_p type(options_p *optsp, bool nested)
Definition gengtype-parse.cc:883
tree gimple_range_ssa_p(tree exp)
Definition gimple-range-fold.h:89
bool op1_range(vrange &, gimple *s, range_query *q=NULL)
Definition gimple-range-fold.cc:357
tree gimple_range_type(const gimple *s)
Definition gimple-range-fold.h:60
bool fold_range(vrange &r, gimple *s, range_query *q=NULL)
Definition gimple-range-fold.cc:313
bool op2_range(vrange &, gimple *s, range_query *q=NULL)
Definition gimple-range-fold.cc:391
relation_trio fold_relations(gimple *s, range_query *q=NULL)
Definition gimple-range-fold.cc:489
tree gimple_get_lhs(const gimple *stmt)
Definition gimple.cc:1938
gimple_code
Definition gimple.h:30
tree gimple_phi_result(const gphi *gs)
Definition gimple.h:4561
tree gimple_call_fntype(const gcall *gs)
Definition gimple.h:3120
poly_int< N, C > r
Definition poly-int.h:774
Definition gengtype.h:252
#define NULL
Definition system.h:50
#define TREE_CODE(NODE)
Definition tree.h:324
#define boolean_type_node
Definition tree.h:4522
#define TREE_TYPE(NODE)
Definition tree.h:512
#define SSA_NAME_IS_VIRTUAL_OPERAND(NODE)
Definition tree.h:2073
#define SSA_NAME_OCCURS_IN_ABNORMAL_PHI(NODE)
Definition tree.h:2115
#define NULL_TREE
Definition tree.h:317
enum relation_kind_t relation_kind