21#ifndef TREE_SSA_SCCVN_H
22#define TREE_SSA_SCCVN_H
129 return op->
align ? ((unsigned)1 << (op->
align - 1)) / BITS_PER_UNIT : 0;
188 return hstate.
end ();
Definition tree-ssa-alias.h:79
hashval_t end() const
Definition inchash.h:49
void merge_hash(hashval_t other)
Definition inchash.h:106
struct basic_block_def * basic_block
Definition coretypes.h:351
class edge_def * edge
Definition coretypes.h:348
gimple * gimple_seq
Definition coretypes.h:100
class bitmap_head * bitmap
Definition coretypes.h:51
union tree_node * tree
Definition coretypes.h:97
int alias_set_type
Definition coretypes.h:345
tree_code
Definition genmatch.cc:1011
bool types_compatible_p(tree type1, tree type2)
Definition gimple-expr.h:64
void add_expr(const_tree t, inchash::hash &hstate, unsigned int flags)
Definition fold-const.cc:4347
poly_int< NUM_POLY_INT_COEFFS, HOST_WIDE_INT > poly_int64
Definition poly-int-types.h:24
Definition function.h:249
Definition gengtype.h:252
Definition tree-ssa-sccvn.h:212
int location
Definition tree-ssa-sccvn.h:215
int leader
Definition tree-ssa-sccvn.h:217
vn_avail * next
Definition tree-ssa-sccvn.h:213
struct vn_ssa_aux * next_undo
Definition tree-ssa-sccvn.h:219
Definition tree-ssa-sccvn.h:159
tree constant
Definition tree-ssa-sccvn.h:162
hashval_t hashcode
Definition tree-ssa-sccvn.h:161
unsigned int value_id
Definition tree-ssa-sccvn.h:160
Definition tree-ssa-sccvn.h:49
unsigned int value_id
Definition tree-ssa-sccvn.h:53
union vn_nary_op_s::@177237217005337261152214164153323004332112370125 u
hashval_t hashcode
Definition tree-ssa-sccvn.h:56
tree type
Definition tree-ssa-sccvn.h:64
unsigned predicated_values
Definition tree-ssa-sccvn.h:57
unsigned length
Definition tree-ssa-sccvn.h:55
tree_code opcode
Definition tree-ssa-sccvn.h:54
vn_nary_op_s * next
Definition tree-ssa-sccvn.h:50
tree op[1]
Definition tree-ssa-sccvn.h:65
vn_nary_op_s * unwind_to
Definition tree-ssa-sccvn.h:51
Definition tree-ssa-sccvn.h:84
vn_phi_s * next
Definition tree-ssa-sccvn.h:85
tree phiargs[1]
Definition tree-ssa-sccvn.h:96
tree type
Definition tree-ssa-sccvn.h:93
hashval_t hashcode
Definition tree-ssa-sccvn.h:88
tree cclhs
Definition tree-ssa-sccvn.h:91
tree ccrhs
Definition tree-ssa-sccvn.h:92
tree result
Definition tree-ssa-sccvn.h:94
basic_block block
Definition tree-ssa-sccvn.h:89
unsigned int value_id
Definition tree-ssa-sccvn.h:87
Definition tree-ssa-sccvn.h:33
vn_pval * next
Definition tree-ssa-sccvn.h:34
unsigned n
Definition tree-ssa-sccvn.h:39
tree result
Definition tree-ssa-sccvn.h:38
int valid_dominated_by_p[1]
Definition tree-ssa-sccvn.h:40
Definition tree-ssa-sccvn.h:107
tree op1
Definition tree-ssa-sccvn.h:120
tree op2
Definition tree-ssa-sccvn.h:121
unsigned reverse
Definition tree-ssa-sccvn.h:113
tree type
Definition tree-ssa-sccvn.h:118
unsigned short clique
Definition tree-ssa-sccvn.h:111
tree_code opcode
Definition tree-ssa-sccvn.h:108
tree op0
Definition tree-ssa-sccvn.h:119
poly_int64 off
Definition tree-ssa-sccvn.h:117
unsigned short base
Definition tree-ssa-sccvn.h:112
unsigned align
Definition tree-ssa-sccvn.h:115
Definition tree-ssa-sccvn.h:140
vec< vn_reference_op_s > operands
Definition tree-ssa-sccvn.h:152
tree result_vdef
Definition tree-ssa-sccvn.h:154
unsigned int value_id
Definition tree-ssa-sccvn.h:143
poly_int64 max_size
Definition tree-ssa-sccvn.h:149
vn_reference_s * next
Definition tree-ssa-sccvn.h:141
unsigned punned
Definition tree-ssa-sccvn.h:151
tree result
Definition tree-ssa-sccvn.h:153
alias_set_type base_set
Definition tree-ssa-sccvn.h:147
alias_set_type set
Definition tree-ssa-sccvn.h:146
hashval_t hashcode
Definition tree-ssa-sccvn.h:144
poly_int64 offset
Definition tree-ssa-sccvn.h:148
tree vuse
Definition tree-ssa-sccvn.h:145
tree type
Definition tree-ssa-sccvn.h:150
Definition tree-ssa-sccvn.h:223
tree name
Definition tree-ssa-sccvn.h:225
unsigned needs_insertion
Definition tree-ssa-sccvn.h:244
vn_avail * avail
Definition tree-ssa-sccvn.h:233
unsigned int value_id
Definition tree-ssa-sccvn.h:236
tree valnum
Definition tree-ssa-sccvn.h:227
unsigned visited
Definition tree-ssa-sccvn.h:239
gimple_seq expr
Definition tree-ssa-sccvn.h:229
#define NULL
Definition system.h:58
tree vn_reference_lookup(tree op, tree vuse, vn_lookup_kind kind, vn_reference_t *vnresult, bool tbaa_p, tree *last_vuse_ptr, tree mask, bool redundant_store_removal_p)
Definition tree-ssa-sccvn.cc:4260
vn_ssa_aux_t VN_INFO(tree name)
Definition tree-ssa-sccvn.cc:467
hashval_t vn_reference_compute_hash(const vn_reference_t vr1)
Definition tree-ssa-sccvn.cc:724
basic_block vn_context_bb
Definition tree-ssa-sccvn.cc:380
bool ao_ref_init_from_vn_reference(ao_ref *ref, alias_set_type set, alias_set_type base_set, tree type, const vec< vn_reference_op_s > &ops)
Definition tree-ssa-sccvn.cc:1166
void vn_reference_lookup_call(gcall *call, vn_reference_t *vnresult, vn_reference_t vr)
Definition tree-ssa-sccvn.cc:4367
unsigned int get_max_value_id(void)
Definition tree-ssa-sccvn.cc:6933
unsigned int get_max_constant_value_id(void)
Definition tree-ssa-sccvn.cc:6941
bool vn_reference_may_trap(vn_reference_t ref)
Definition tree-ssa-sccvn.cc:7048
hashval_t vn_nary_op_compute_hash(const vn_nary_op_t vno1)
Definition tree-ssa-sccvn.cc:4519
bool vn_reference_eq(const_vn_reference_t const vr1, const_vn_reference_t const vr2, bool lexical)
Definition tree-ssa-sccvn.cc:780
bool vn_pp_nary_for_addr(const vec< vn_reference_op_s > &operands, tree ops[2])
Definition tree-ssa-sccvn.cc:4215
tree fully_constant_vn_reference_p(vn_reference_t ref)
Definition tree-ssa-sccvn.cc:1578
void run_rpo_vn(vn_lookup_kind kind)
Definition tree-ssa-sccvn.cc:8079
void init_vn_nary_op_from_stmt(vn_nary_op_t vno, gassign *stmt)
Definition tree-ssa-sccvn.cc:4615
unsigned int vn_nary_length_from_stmt(gimple *stmt)
Definition tree-ssa-sccvn.cc:4592
unsigned do_rpo_vn(function *fn, edge entry, bitmap exit_bbs, bool iterate, bool eliminate, bool skip_entry_phis, vn_lookup_kind kind)
Definition tree-ssa-sccvn.cc:9310
unsigned int get_or_alloc_constant_value_id(tree constant)
Definition tree-ssa-sccvn.cc:680
bool vn_nary_may_trap(vn_nary_op_t nary)
Definition tree-ssa-sccvn.cc:7005
bool vn_nary_op_eq(const_vn_nary_op_t const vno1, const_vn_nary_op_t const vno2)
Definition tree-ssa-sccvn.cc:4548
tree vn_reference_lookup_pieces(tree vuse, alias_set_type set, alias_set_type base_set, tree type, vec< vn_reference_op_s > operands, vn_reference_t *vnresult, vn_lookup_kind kind)
Definition tree-ssa-sccvn.cc:4126
vec< vn_reference_op_s > vn_reference_operands_for_lookup(tree op)
Definition tree-ssa-sccvn.cc:4114
vn_nary_op_t vn_nary_op_insert_pieces(unsigned int length, enum tree_code code, tree type, tree *ops, tree result, unsigned int value_id)
Definition tree-ssa-sccvn.cc:4891
vn_nary_op_t alloc_vn_nary_op_noinit(unsigned int length, struct obstack *stack)
Definition tree-ssa-sccvn.cc:4712
unsigned int get_next_value_id(void)
Definition tree-ssa-sccvn.cc:6949
unsigned int get_next_constant_value_id(void)
Definition tree-ssa-sccvn.cc:6958
tree(*) vn_valueize(tree)
Definition tree-ssa-sccvn.cc:386
void print_vn_reference_ops(FILE *outfile, const vec< vn_reference_op_s > ops)
Definition tree-ssa-sccvn.cc:264
bool has_VN_INFO(tree name)
Definition tree-ssa-sccvn.cc:461
bool expressions_equal_p(tree e1, tree e2, bool match_vn_top_optimistically)
Definition tree-ssa-sccvn.cc:6970
vn_reference_t vn_reference_insert_pieces(tree vuse, alias_set_type set, alias_set_type base_set, poly_int64 offset, poly_int64 max_size, tree type, vec< vn_reference_op_s > operands, tree result, unsigned int value_id)
Definition tree-ssa-sccvn.cc:4475
enum vn_kind vn_get_stmt_kind(gimple *stmt)
Definition tree-ssa-sccvn.cc:604
tree vn_nary_op_lookup_stmt(gimple *stmt, vn_nary_op_t *vnresult)
Definition tree-ssa-sccvn.cc:4700
void copy_reference_ops_from_ref(tree ref, vec< vn_reference_op_s > *result)
Definition tree-ssa-sccvn.cc:952
tree vn_nary_op_lookup_pieces(unsigned int length, enum tree_code code, tree type, tree *ops, vn_nary_op_t *vnresult)
Definition tree-ssa-sccvn.cc:4685
unsigned int get_constant_value_id(tree constant)
Definition tree-ssa-sccvn.cc:663
unsigned eliminate_with_rpo_vn(bitmap inserted_exprs)
Definition tree-ssa-sccvn.cc:8061
void free_rpo_vn(void)
Definition tree-ssa-sccvn.cc:8134
tree VN_TOP
Definition tree-ssa-sccvn.cc:407
tree vn_nary_simplify(vn_nary_op_t nary)
Definition tree-ssa-sccvn.cc:2664
struct vn_reference_s * vn_reference_t
struct vn_phi_s * vn_phi_t
bool vn_constant_eq_with_type(tree c1, tree c2)
Definition tree-ssa-sccvn.h:195
const struct vn_reference_s * const_vn_reference_t
Definition tree-ssa-sccvn.h:156
tree vn_get_expr_for(tree)
struct vn_nary_op_s * vn_nary_op_t
vn_lookup_kind
Definition tree-ssa-sccvn.h:247
@ VN_WALK
Definition tree-ssa-sccvn.h:247
@ VN_WALKREWRITE
Definition tree-ssa-sccvn.h:247
@ VN_NOWALK
Definition tree-ssa-sccvn.h:247
vn_kind
Definition tree-ssa-sccvn.h:165
@ VN_CONSTANT
Definition tree-ssa-sccvn.h:165
@ VN_NARY
Definition tree-ssa-sccvn.h:165
@ VN_PHI
Definition tree-ssa-sccvn.h:165
@ VN_NONE
Definition tree-ssa-sccvn.h:165
@ VN_REFERENCE
Definition tree-ssa-sccvn.h:165
vn_reference_op_s * vn_reference_op_t
Definition tree-ssa-sccvn.h:123
bool value_id_constant_p(unsigned int v)
Definition tree-ssa-sccvn.h:298
struct vn_ssa_aux * vn_ssa_aux_t
unsigned vn_ref_op_align_unit(vn_reference_op_t op)
Definition tree-ssa-sccvn.h:127
const struct vn_nary_op_s * const_vn_nary_op_t
Definition tree-ssa-sccvn.h:67
const vn_reference_op_s * const_vn_reference_op_t
Definition tree-ssa-sccvn.h:124
hashval_t vn_hash_type(tree type)
Definition tree-ssa-sccvn.h:172
hashval_t vn_hash_constant_with_type(tree constant)
Definition tree-ssa-sccvn.h:183
struct vn_reference_op_struct vn_reference_op_s
void scc_vn_restore_ssa_info(void)
const struct vn_phi_s * const_vn_phi_t
Definition tree-ssa-sccvn.h:98
size_t sizeof_vn_nary_op(unsigned int length)
Definition tree-ssa-sccvn.h:72
struct vn_constant_s * vn_constant_t
#define TYPE_PRECISION(NODE)
Definition tree.h:2440
#define TYPE_UNSIGNED(NODE)
Definition tree.h:980
#define TREE_TYPE(NODE)
Definition tree.h:513
#define INTEGRAL_TYPE_P(TYPE)
Definition tree.h:614
#define NULL_TREE
Definition tree.h:318