21#ifndef GCC_ANALYZER_SVALUE_H
22#define GCC_ANALYZER_SVALUE_H
108 std::unique_ptr<json::value>
to_json ()
const;
110 std::unique_ptr<text_art::tree_widget>
112 const char *prefix =
nullptr)
const;
189 const svalue *outer_sval =
nullptr)
const;
243 return hstate.
end ();
248 return (
m_type == other.m_type &&
m_reg == other.m_reg);
331 return hstate.
end ();
336 return (
m_type == other.m_type &&
m_cst == other.m_cst);
481 return hstate.
end ();
486 return (
m_kind == other.m_kind &&
m_type == other.m_type);
554 const gcall &setjmp_call)
561 return (
m_enode == other.m_enode
600 return hstate.
end ();
735 return hstate.
end ();
740 return (
m_type == other.m_type
741 &&
m_op == other.m_op
742 &&
m_arg == other.m_arg);
832 return hstate.
end ();
837 return (
m_type == other.m_type
838 &&
m_op == other.m_op
840 &&
m_arg1 == other.m_arg1);
903 return sval->get_kind () ==
SK_BINOP;
934 return hstate.
end ();
939 return (
m_type == other.m_type
989 return sval->get_kind () ==
SK_SUB;
1011 const svalue *outer_size,
1012 const svalue *inner_svalue)
1022 return hstate.
end ();
1027 return (
m_type == other.m_type
1043 const svalue *outer_size,
1044 const svalue *inner_svalue);
1108 const svalue *inner_svalue)
1117 return hstate.
end ();
1122 return (
m_type == other.m_type
1123 &&
m_bits == other.m_bits
1139 const svalue *inner_svalue);
1314 return hstate.
end ();
1319 return (
m_type == other.m_type
1379 tree rhs_cst)
const;
1437 return hstate.
end ();
1442 return (
m_type == other.m_type
1568 return hstate.
end ();
1573 return (
m_type == other.m_type
1574 &&
m_stmt == other.m_stmt
1576 &&
m_idx == other.m_idx);
1596 const region *id_reg,
unsigned idx)
1665 const char *asm_string,
1666 unsigned output_idx,
1684 return hstate.
end ();
1689 if (!(
m_type == other.m_type
1706 return m_asm_string ==
reinterpret_cast<const char *
> (1);
1719 const char *asm_string,
1720 unsigned output_idx,
1721 unsigned num_outputs,
1828 return hstate.
end ();
1833 if (!(
m_type == other.m_type
const asm_output_svalue * dyn_cast_asm_output_svalue() const final override
Definition svalue.h:1736
void dump_input(pretty_printer *pp, unsigned input_idx, const svalue *sval, bool simple) const
const char * get_asm_string() const
Definition svalue.h:1751
asm_output_svalue(symbol::id_t id, tree type, const char *asm_string, unsigned output_idx, unsigned num_outputs, const vec< const svalue * > &inputs)
Definition svalue.h:1717
const char * m_asm_string
Definition svalue.h:1764
unsigned m_num_inputs
Definition svalue.h:1771
unsigned m_output_idx
Definition svalue.h:1765
unsigned get_num_outputs() const
Definition svalue.h:1753
unsigned input_idx_to_asm_idx(unsigned input_idx) const
unsigned get_num_inputs() const
Definition svalue.h:1754
enum svalue_kind get_kind() const final override
Definition svalue.h:1734
const svalue * get_input(unsigned idx) const
Definition svalue.h:1755
unsigned m_num_outputs
Definition svalue.h:1769
void print_dump_widget_label(pretty_printer *pp) const final override
void accept(visitor *v) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
unsigned get_output_idx() const
Definition svalue.h:1752
const svalue * m_input_arr[MAX_INPUTS]
Definition svalue.h:1772
static const unsigned MAX_INPUTS
Definition svalue.h:1659
enum tree_code get_op() const
Definition svalue.h:886
const svalue * get_arg1() const
Definition svalue.h:888
bool maybe_get_value_range_1(value_range &out) const final override
void accept(visitor *v) const final override
enum tree_code m_op
Definition svalue.h:891
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
const svalue * get_arg0() const
Definition svalue.h:887
const svalue * m_arg1
Definition svalue.h:893
enum svalue_kind get_kind() const final override
Definition svalue.h:866
void print_dump_widget_label(pretty_printer *pp) const final override
binop_svalue(symbol::id_t id, tree type, enum tree_code op, const svalue *arg0, const svalue *arg1)
Definition svalue.h:854
const svalue * m_arg0
Definition svalue.h:892
void dump_to_pp(pretty_printer *pp, bool simple) const final override
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
const binop_svalue * dyn_cast_binop_svalue() const final override
Definition svalue.h:867
enum svalue_kind get_kind() const final override
Definition svalue.h:1141
const bit_range m_bits
Definition svalue.h:1169
const svalue * m_inner_svalue
Definition svalue.h:1170
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
void accept(visitor *v) const final override
bits_within_svalue(symbol::id_t id, tree type, const bit_range &bits, const svalue *inner_svalue)
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const svalue * get_inner_svalue() const
Definition svalue.h:1161
const bits_within_svalue * dyn_cast_bits_within_svalue() const final override
Definition svalue.h:1143
const bit_range & get_bits() const
Definition svalue.h:1160
void print_dump_widget_label(pretty_printer *pp) const final override
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
const_iterator_t end() const
Definition svalue.h:1478
concrete_binding_map::const_iterator const_iterator_t
Definition svalue.h:1420
compound_svalue(symbol::id_t id, tree type, const concrete_binding_map &map)
iterator_t end()
Definition svalue.h:1480
void print_dump_widget_label(pretty_printer *pp) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
concrete_binding_map::iterator iterator_t
Definition svalue.h:1421
iterator_t begin()
Definition svalue.h:1479
const concrete_binding_map & get_concrete_bindings() const
Definition svalue.h:1475
enum svalue_kind get_kind() const final override
Definition svalue.h:1458
concrete_binding_map m_map
Definition svalue.h:1493
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
const_iterator_t begin() const
Definition svalue.h:1477
void accept(visitor *v) const final override
compound_svalue(symbol::id_t id, tree type, concrete_binding_map &&map)
struct key_t make_key() const
Definition svalue.h:1482
const compound_svalue * dyn_cast_compound_svalue() const final override
Definition svalue.h:1459
map_t::const_iterator const_iterator
Definition store.h:527
map_t::iterator iterator
Definition store.h:528
void purge(const conjured_svalue *sval) const
conjured_purge(region_model *model, region_model_context *ctxt)
Definition svalue.h:1524
region_model_context * m_ctxt
Definition svalue.h:1532
region_model * m_model
Definition svalue.h:1531
void accept(visitor *v) const final override
const gimple * get_stmt() const
Definition svalue.h:1619
const conjured_svalue * dyn_cast_conjured_svalue() const final override
Definition svalue.h:1604
enum svalue_kind get_kind() const final override
Definition svalue.h:1603
const region * m_id_reg
Definition svalue.h:1625
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
const gimple * m_stmt
Definition svalue.h:1624
void print_dump_widget_label(pretty_printer *pp) const final override
unsigned m_idx
Definition svalue.h:1626
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const region * get_id_region() const
Definition svalue.h:1620
conjured_svalue(symbol::id_t id, tree type, const gimple *stmt, const region *id_reg, unsigned idx)
Definition svalue.h:1595
tree m_fndecl
Definition svalue.h:1901
unsigned get_num_inputs() const
Definition svalue.h:1892
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
void accept(visitor *v) const final override
tree get_fndecl() const
Definition svalue.h:1891
static const unsigned MAX_INPUTS
Definition svalue.h:1805
const svalue * get_input(unsigned idx) const
Definition svalue.h:1893
enum svalue_kind get_kind() const final override
Definition svalue.h:1871
void dump_input(pretty_printer *pp, unsigned input_idx, const svalue *sval, bool simple) const
const_fn_result_svalue(symbol::id_t id, tree type, tree fndecl, const vec< const svalue * > &inputs)
Definition svalue.h:1858
const svalue * m_input_arr[MAX_INPUTS]
Definition svalue.h:1903
unsigned m_num_inputs
Definition svalue.h:1902
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const const_fn_result_svalue * dyn_cast_const_fn_result_svalue() const final override
Definition svalue.h:1876
void print_dump_widget_label(pretty_printer *pp) const final override
bool all_zeroes_p() const final override
static tristate eval_condition(const constant_svalue *lhs, enum tree_code op, const constant_svalue *rhs)
enum svalue_kind get_kind() const final override
Definition svalue.h:357
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
const constant_svalue * dyn_cast_constant_svalue() const final override
Definition svalue.h:359
constant_svalue(symbol::id_t id, tree type, tree cst_expr)
Definition svalue.h:348
tree get_constant() const
Definition svalue.h:373
void print_dump_widget_label(pretty_printer *pp) const final override
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
bool maybe_get_value_range_1(value_range &out) const final override
tree m_cst_expr
Definition svalue.h:388
void dump_to_pp(pretty_printer *pp, bool simple) const final override
void accept(visitor *v) const final override
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
Definition exploded-graph.h:206
const initial_svalue * dyn_cast_initial_svalue() const final override
Definition svalue.h:682
const region * get_region() const
Definition svalue.h:698
void accept(visitor *v) const final override
bool initial_value_of_param_p() const
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
const region * m_reg
Definition svalue.h:701
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:680
void print_dump_widget_label(pretty_printer *pp) const final override
initial_svalue(symbol::id_t id, tree type, const region *reg)
Definition svalue.h:674
void dump_to_pp(pretty_printer *pp, bool simple) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:1257
placeholder_svalue(symbol::id_t id, tree type, const char *name)
Definition svalue.h:1252
const char * m_name
Definition svalue.h:1272
const char * get_name() const
Definition svalue.h:1269
void accept(visitor *v) const final override
void print_dump_widget_label(pretty_printer *pp) const final override
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
enum poison_kind get_poison_kind() const
Definition svalue.h:520
void accept(visitor *v) const final override
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
const poisoned_svalue * dyn_cast_poisoned_svalue() const final override
Definition svalue.h:503
void dump_to_pp(pretty_printer *pp, bool simple) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:501
bool can_have_associated_state_p() const final override
Definition svalue.h:523
enum poison_kind m_kind
Definition svalue.h:526
poisoned_svalue(enum poison_kind kind, symbol::id_t id, tree type)
Definition svalue.h:498
void print_dump_widget_label(pretty_printer *pp) const final override
Definition region-model.h:748
Definition region-model-manager.h:32
Definition region-model.h:294
enum svalue_kind get_kind() const final override
Definition svalue.h:267
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
const region_svalue * dyn_cast_region_svalue() const final override
Definition svalue.h:269
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const region * get_pointee() const
Definition svalue.h:283
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
void print_dump_widget_label(pretty_printer *pp) const final override
void accept(visitor *v) const final override
region_svalue(symbol::id_t id, tree type, const region *reg)
Definition svalue.h:260
const region * m_reg
Definition svalue.h:291
static tristate eval_condition(const region_svalue *lhs_ptr, enum tree_code op, const region_svalue *rhs_ptr, const region_model &model)
const repeated_svalue * dyn_cast_repeated_svalue() const final override
Definition svalue.h:1047
const svalue * m_inner_svalue
Definition svalue.h:1074
const svalue * get_inner_svalue() const
Definition svalue.h:1063
bool all_zeroes_p() const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
void print_dump_widget_label(pretty_printer *pp) const final override
void accept(visitor *v) const final override
const svalue * get_outer_size() const
Definition svalue.h:1062
enum svalue_kind get_kind() const final override
Definition svalue.h:1046
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
repeated_svalue(symbol::id_t id, tree type, const svalue *outer_size, const svalue *inner_svalue)
const svalue * m_outer_size
Definition svalue.h:1073
const setjmp_svalue * dyn_cast_setjmp_svalue() const final override
Definition svalue.h:625
void accept(visitor *v) const final override
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:623
setjmp_svalue(const setjmp_record &setjmp_record, symbol::id_t id, tree type)
Definition svalue.h:617
const setjmp_record & get_setjmp_record() const
Definition svalue.h:639
void print_dump_widget_label(pretty_printer *pp) const final override
setjmp_record m_setjmp_record
Definition svalue.h:642
int get_enode_index() const
const svalue * get_parent() const
Definition svalue.h:974
const region * m_subregion
Definition svalue.h:979
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
void print_dump_widget_label(pretty_printer *pp) const final override
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
void accept(visitor *v) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:956
const region * get_subregion() const
Definition svalue.h:975
const svalue * m_parent_svalue
Definition svalue.h:978
sub_svalue(symbol::id_t id, tree type, const svalue *parent_svalue, const region *subregion)
const sub_svalue * dyn_cast_sub_svalue() const final override
Definition svalue.h:957
void dump_to_pp(pretty_printer *pp, bool simple) const final override
Definition supergraph.h:281
Definition supergraph.h:224
virtual const unaryop_svalue * dyn_cast_unaryop_svalue() const
Definition svalue.h:125
virtual const compound_svalue * dyn_cast_compound_svalue() const
Definition svalue.h:139
virtual void accept(visitor *v) const =0
virtual const asm_output_svalue * dyn_cast_asm_output_svalue() const
Definition svalue.h:143
virtual void dump_to_pp(pretty_printer *pp, bool simple) const =0
virtual const repeated_svalue * dyn_cast_repeated_svalue() const
Definition svalue.h:131
const svalue * extract_bit_range(tree type, const bit_range &subrange, region_model_manager *mgr) const
virtual const widening_svalue * dyn_cast_widening_svalue() const
Definition svalue.h:137
bool live_p(const svalue_set *live_svalues, const region_model *model) const
virtual bool maybe_get_value_range_1(value_range &out) const
const region * maybe_get_deref_base_region() const
virtual const poisoned_svalue * dyn_cast_poisoned_svalue() const
Definition svalue.h:119
tree m_type
Definition svalue.h:222
void dump(bool simple) const
bool involves_p(const svalue *other) const
bool maybe_get_value_range(value_range &out) const
Definition svalue.h:196
label_text get_desc(bool simple=true) const
virtual const unmergeable_svalue * dyn_cast_unmergeable_svalue() const
Definition svalue.h:135
virtual const const_fn_result_svalue * dyn_cast_const_fn_result_svalue() const
Definition svalue.h:145
virtual const region_svalue * dyn_cast_region_svalue() const
Definition svalue.h:115
virtual enum svalue_kind get_kind() const =0
virtual ~svalue()
Definition svalue.h:94
virtual const initial_svalue * dyn_cast_initial_svalue() const
Definition svalue.h:123
virtual const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const
virtual bool can_have_associated_state_p() const
Definition svalue.h:183
tree maybe_get_constant() const
virtual const sub_svalue * dyn_cast_sub_svalue() const
Definition svalue.h:129
const svalue * can_merge_p(const svalue *other, region_model_manager *mgr, model_merger *merger) const
void print_svalue_node_label(pretty_printer *pp) const
virtual const constant_svalue * dyn_cast_constant_svalue() const
Definition svalue.h:117
virtual const conjured_svalue * dyn_cast_conjured_svalue() const
Definition svalue.h:141
static int cmp_ptr_ptr(const void *, const void *)
tree maybe_get_type_from_typeinfo() const
svalue(complexity c, symbol::id_t id, tree type)
Definition svalue.h:207
virtual void print_dump_widget_label(pretty_printer *pp) const =0
virtual const binop_svalue * dyn_cast_binop_svalue() const
Definition svalue.h:127
const svalue * unwrap_any_unmergeable() const
virtual const setjmp_svalue * dyn_cast_setjmp_svalue() const
Definition svalue.h:121
std::unique_ptr< text_art::tree_widget > make_dump_widget(const dump_widget_info &dwi, const char *prefix=nullptr) const
virtual void add_dump_widget_children(text_art::tree_widget &, const dump_widget_info &dwi) const =0
tree get_type() const
Definition svalue.h:96
static int cmp_ptr(const svalue *, const svalue *)
void print(const region_model &model, pretty_printer *pp) const
const svalue * maybe_undo_cast() const
const region * maybe_get_region() const
virtual const bits_within_svalue * dyn_cast_bits_within_svalue() const
Definition svalue.h:133
bool maybe_print_for_user(pretty_printer *pp, const region_model &model, const svalue *outer_sval=nullptr) const
std::unique_ptr< json::value > to_json() const
virtual bool implicitly_live_p(const svalue_set *live_svalues, const region_model *model) const
virtual bool all_zeroes_p() const
unsigned id_t
Definition symbol.h:33
const complexity & get_complexity() const
Definition symbol.h:35
symbol(complexity c, unsigned id)
Definition symbol.h:41
void accept(visitor *v) const final override
const svalue * m_arg
Definition svalue.h:790
unaryop_svalue(symbol::id_t id, tree type, enum tree_code op, const svalue *arg)
Definition svalue.h:755
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const svalue * get_arg() const
Definition svalue.h:779
enum tree_code get_op() const
Definition svalue.h:778
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
bool maybe_get_value_range_1(value_range &out) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:762
const unaryop_svalue * dyn_cast_unaryop_svalue() const final override
Definition svalue.h:764
enum tree_code m_op
Definition svalue.h:789
void print_dump_widget_label(pretty_printer *pp) const final override
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
bool can_have_associated_state_p() const final override
Definition svalue.h:441
unknown_svalue(symbol::id_t id, tree type)
Definition svalue.h:417
void print_dump_widget_label(pretty_printer *pp) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:421
void accept(visitor *v) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
const svalue * maybe_fold_bits_within(tree type, const bit_range &subrange, region_model_manager *mgr) const final override
bool maybe_get_value_range_1(value_range &out) const final override
const unmergeable_svalue * dyn_cast_unmergeable_svalue() const final override
Definition svalue.h:1212
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:1210
void accept(visitor *v) const final override
unmergeable_svalue(symbol::id_t id, const svalue *arg)
Definition svalue.h:1205
const svalue * get_arg() const
Definition svalue.h:1226
void print_dump_widget_label(pretty_printer *pp) const final override
bool implicitly_live_p(const svalue_set *, const region_model *) const final override
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const svalue * m_arg
Definition svalue.h:1229
Definition region-model.h:223
const supernode * get_snode() const
Definition svalue.h:1372
void dump_to_pp(pretty_printer *pp, bool simple) const final override
const svalue * m_base_sval
Definition svalue.h:1383
const svalue * get_base_svalue() const
Definition svalue.h:1373
widening_svalue(symbol::id_t id, tree type, const supernode *snode, const svalue *base_sval, const svalue *iter_sval)
Definition svalue.h:1343
direction_t
Definition svalue.h:1337
@ DIR_UNKNOWN
Definition svalue.h:1340
@ DIR_DESCENDING
Definition svalue.h:1339
@ DIR_ASCENDING
Definition svalue.h:1338
const widening_svalue * dyn_cast_widening_svalue() const final override
Definition svalue.h:1357
void print_dump_widget_label(pretty_printer *pp) const final override
enum svalue_kind get_kind() const final override
Definition svalue.h:1356
const svalue * get_iter_svalue() const
Definition svalue.h:1374
tristate eval_condition_without_cm(enum tree_code op, tree rhs_cst) const
const supernode * m_snode
Definition svalue.h:1382
void add_dump_widget_children(text_art::tree_widget &w, const dump_widget_info &dwi) const final override
void accept(visitor *v) const final override
const svalue * m_iter_sval
Definition svalue.h:1384
enum direction_t get_direction() const
void add_int(unsigned v)
Definition inchash.h:55
hashval_t end() const
Definition inchash.h:49
void add_ptr(const void *ptr)
Definition inchash.h:94
Definition pretty-print.h:241
Definition tree-widget.h:32
Definition value-range.h:779
bool undefined_p() const
Definition value-range.h:800
union tree_node * tree
Definition coretypes.h:97
static struct string2counter_map map[debug_counter_number_of_counters]
Definition dbgcnt.cc:39
static bool operator==(cfa_reg &cfa, rtx reg)
Definition dwarf2cfi.cc:1164
void final(rtx_insn *first, FILE *file, int optimize_p)
Definition final.cc:2009
tree_code
Definition genmatch.cc:1002
Definition access-diagram.h:30
@ stmt
Definition checker-event.h:38
poison_kind
Definition svalue.h:447
@ uninit
Definition svalue.h:449
@ freed
Definition svalue.h:452
@ popped_stack
Definition svalue.h:458
@ deleted
Definition svalue.h:455
const char * poison_kind_to_str(enum poison_kind)
hash_set< const svalue * > svalue_set
Definition common.h:76
svalue_kind
Definition svalue.h:38
@ SK_BINOP
Definition svalue.h:46
@ SK_REPEATED
Definition svalue.h:48
@ SK_BITS_WITHIN
Definition svalue.h:49
@ SK_INITIAL
Definition svalue.h:44
@ SK_COMPOUND
Definition svalue.h:53
@ SK_ASM_OUTPUT
Definition svalue.h:55
@ SK_UNKNOWN
Definition svalue.h:41
@ SK_SUB
Definition svalue.h:47
@ SK_UNARYOP
Definition svalue.h:45
@ SK_POISONED
Definition svalue.h:42
@ SK_CONSTANT
Definition svalue.h:40
@ SK_PLACEHOLDER
Definition svalue.h:51
@ SK_UNMERGEABLE
Definition svalue.h:50
@ SK_CONJURED
Definition svalue.h:54
@ SK_SETJMP
Definition svalue.h:43
@ SK_CONST_FN_RESULT
Definition svalue.h:56
@ SK_WIDENING
Definition svalue.h:52
@ SK_REGION
Definition svalue.h:39
i
Definition poly-int.h:776
key_t(tree type, const char *asm_string, unsigned output_idx, const vec< const svalue * > &inputs)
Definition svalue.h:1664
unsigned m_num_inputs
Definition svalue.h:1713
bool is_deleted() const
Definition svalue.h:1704
void mark_empty()
Definition svalue.h:1703
hashval_t hash() const
Definition svalue.h:1676
bool is_empty() const
Definition svalue.h:1708
unsigned m_output_idx
Definition svalue.h:1712
void mark_deleted()
Definition svalue.h:1702
const char * m_asm_string
Definition svalue.h:1711
const svalue * m_input_arr[MAX_INPUTS]
Definition svalue.h:1714
tree m_type
Definition svalue.h:1710
bool is_empty() const
Definition svalue.h:846
enum tree_code m_op
Definition svalue.h:849
hashval_t hash() const
Definition svalue.h:825
const svalue * m_arg1
Definition svalue.h:851
tree m_type
Definition svalue.h:848
void mark_deleted()
Definition svalue.h:843
key_t(tree type, enum tree_code op, const svalue *arg0, const svalue *arg1)
Definition svalue.h:820
void mark_empty()
Definition svalue.h:844
bool is_deleted() const
Definition svalue.h:845
const svalue * m_arg0
Definition svalue.h:850
bool is_deleted() const
Definition svalue.h:1129
key_t(tree type, const bit_range &bits, const svalue *inner_svalue)
Definition svalue.h:1106
hashval_t hash() const
Definition svalue.h:1112
bool is_empty() const
Definition svalue.h:1130
void mark_empty()
Definition svalue.h:1128
bit_range m_bits
Definition svalue.h:1133
void mark_deleted()
Definition svalue.h:1127
const svalue * m_inner_svalue
Definition svalue.h:1134
tree m_type
Definition svalue.h:1132
Definition complexity.h:31
bool is_deleted() const
Definition svalue.h:1448
tree m_type
Definition svalue.h:1451
void mark_empty()
Definition svalue.h:1447
hashval_t hash() const
Definition svalue.h:1432
bool is_empty() const
Definition svalue.h:1449
const concrete_binding_map * m_map_ptr
Definition svalue.h:1452
void mark_deleted()
Definition svalue.h:1446
key_t(tree type, const concrete_binding_map *map_ptr)
Definition svalue.h:1428
unsigned m_idx
Definition svalue.h:1592
bool is_deleted() const
Definition svalue.h:1583
void mark_empty()
Definition svalue.h:1582
bool is_empty() const
Definition svalue.h:1587
const gimple * m_stmt
Definition svalue.h:1590
void mark_deleted()
Definition svalue.h:1581
key_t(tree type, const gimple *stmt, const region *id_reg, unsigned idx)
Definition svalue.h:1558
tree m_type
Definition svalue.h:1589
hashval_t hash() const
Definition svalue.h:1562
const region * m_id_reg
Definition svalue.h:1591
void mark_empty()
Definition svalue.h:1845
tree m_fndecl
Definition svalue.h:1853
hashval_t hash() const
Definition svalue.h:1821
const svalue * m_input_arr[MAX_INPUTS]
Definition svalue.h:1855
bool is_empty() const
Definition svalue.h:1850
tree m_type
Definition svalue.h:1852
void mark_deleted()
Definition svalue.h:1844
unsigned m_num_inputs
Definition svalue.h:1854
bool is_deleted() const
Definition svalue.h:1846
key_t(tree type, tree fndecl, const vec< const svalue * > &inputs)
Definition svalue.h:1810
bool is_empty() const
Definition svalue.h:342
void mark_deleted()
Definition svalue.h:339
bool is_deleted() const
Definition svalue.h:341
key_t(tree type, tree cst)
Definition svalue.h:322
tree m_cst
Definition svalue.h:345
hashval_t hash() const
Definition svalue.h:326
void mark_empty()
Definition svalue.h:340
tree m_type
Definition svalue.h:344
bool operator==(const key_t &other) const
Definition svalue.h:334
Definition region-model.h:1204
void mark_deleted()
Definition svalue.h:489
bool is_deleted() const
Definition svalue.h:491
hashval_t hash() const
Definition svalue.h:476
enum poison_kind m_kind
Definition svalue.h:494
bool is_empty() const
Definition svalue.h:492
key_t(enum poison_kind kind, tree type)
Definition svalue.h:472
bool operator==(const key_t &other) const
Definition svalue.h:484
tree m_type
Definition svalue.h:495
void mark_empty()
Definition svalue.h:490
bool operator==(const key_t &other) const
Definition svalue.h:246
bool is_deleted() const
Definition svalue.h:253
bool is_empty() const
Definition svalue.h:254
key_t(tree type, const region *reg)
Definition svalue.h:234
void mark_deleted()
Definition svalue.h:251
tree m_type
Definition svalue.h:256
const region * m_reg
Definition svalue.h:257
void mark_empty()
Definition svalue.h:252
hashval_t hash() const
Definition svalue.h:238
tree m_type
Definition svalue.h:1037
void mark_deleted()
Definition svalue.h:1032
const svalue * m_outer_size
Definition svalue.h:1038
hashval_t hash() const
Definition svalue.h:1016
void mark_empty()
Definition svalue.h:1033
bool is_empty() const
Definition svalue.h:1035
key_t(tree type, const svalue *outer_size, const svalue *inner_svalue)
Definition svalue.h:1010
const svalue * m_inner_svalue
Definition svalue.h:1039
bool is_deleted() const
Definition svalue.h:1034
setjmp_record(const exploded_node *enode, const superedge *sedge, const gcall &setjmp_call)
Definition svalue.h:552
static int cmp(const setjmp_record &rec1, const setjmp_record &rec2)
const exploded_node * m_enode
Definition svalue.h:575
const gcall * m_setjmp_call
Definition svalue.h:577
void add_to_hash(inchash::hash *hstate) const
Definition svalue.h:566
const superedge * m_sedge
Definition svalue.h:576
key_t(const setjmp_record &record, tree type)
Definition svalue.h:591
hashval_t hash() const
Definition svalue.h:595
tree m_type
Definition svalue.h:614
setjmp_record m_record
Definition svalue.h:613
void mark_deleted()
Definition svalue.h:608
void mark_empty()
Definition svalue.h:609
bool is_deleted() const
Definition svalue.h:610
bool is_empty() const
Definition svalue.h:611
void mark_empty()
Definition svalue.h:945
void mark_deleted()
Definition svalue.h:944
bool is_deleted() const
Definition svalue.h:946
hashval_t hash() const
Definition svalue.h:928
tree m_type
Definition svalue.h:949
const svalue * m_parent_svalue
Definition svalue.h:950
key_t(tree type, const svalue *parent_svalue, const region *subregion)
Definition svalue.h:924
const region * m_subregion
Definition svalue.h:951
bool is_empty() const
Definition svalue.h:947
tree m_type
Definition svalue.h:750
bool is_deleted() const
Definition svalue.h:747
void mark_empty()
Definition svalue.h:746
bool is_empty() const
Definition svalue.h:748
hashval_t hash() const
Definition svalue.h:729
enum tree_code m_op
Definition svalue.h:751
const svalue * m_arg
Definition svalue.h:752
void mark_deleted()
Definition svalue.h:745
key_t(tree type, enum tree_code op, const svalue *arg)
Definition svalue.h:725
bool is_empty() const
Definition svalue.h:1328
const supernode * m_snode
Definition svalue.h:1331
const svalue * m_base_sval
Definition svalue.h:1332
void mark_deleted()
Definition svalue.h:1325
tree m_type
Definition svalue.h:1330
hashval_t hash() const
Definition svalue.h:1309
bool is_deleted() const
Definition svalue.h:1327
key_t(tree type, const supernode *snode, const svalue *base_sval, const svalue *iter_sval)
Definition svalue.h:1303
const svalue * m_iter_sval
Definition svalue.h:1333
void mark_empty()
Definition svalue.h:1326
static const bool empty_zero_p
Definition svalue.h:1788
static const bool empty_zero_p
Definition svalue.h:909
static const bool empty_zero_p
Definition svalue.h:1186
static const bool empty_zero_p
Definition svalue.h:1509
static const bool empty_zero_p
Definition svalue.h:1642
static const bool empty_zero_p
Definition svalue.h:1919
static const bool empty_zero_p
Definition svalue.h:404
static const bool empty_zero_p
Definition svalue.h:542
static const bool empty_zero_p
Definition svalue.h:307
static const bool empty_zero_p
Definition svalue.h:1090
static const bool empty_zero_p
Definition svalue.h:658
static const bool empty_zero_p
Definition svalue.h:995
static const bool empty_zero_p
Definition svalue.h:806
static const bool empty_zero_p
Definition svalue.h:1400
Definition hash-traits.h:466
Definition collect2.cc:168
static bool test(const U *p)
Definition is-a.h:211
Definition dump-widget-info.h:31
Definition gengtype.h:252
#define gcc_assert(EXPR)
Definition system.h:817
#define TREE_TYPE(NODE)
Definition tree.h:513
#define CONSTANT_CLASS_P(NODE)
Definition tree.h:216
#define NULL_TREE
Definition tree.h:318