21#ifndef GCC_ANALYZER_REGION_MODEL_MANAGER_H
22#define GCC_ANALYZER_REGION_MODEL_MANAGER_H
57 bool check_poisoned =
true);
66 const svalue *parent_svalue,
70 const svalue *inner_svalue);
73 const svalue *inner_svalue);
78 const svalue *iter_svalue);
92 const char *asm_string,
102 tree byte_offset_cst);
128 const svalue *byte_offset);
131 const svalue *byte_size_sval);
183 const svalue *parent_svalue,
187 const svalue *inner_svalue);
190 const svalue *inner_svalue);
Definition constraint-manager.h:181
Definition call-string.h:48
Definition program-point.h:73
Definition known-function-manager.h:41
Definition analyzer-logging.h:34
Definition region-model.h:718
Definition region-model-manager.h:32
hash_map< const svalue *, unmergeable_svalue * > unmergeable_values_map_t
Definition region-model-manager.h:248
hash_map< binop_svalue::key_t, binop_svalue * > binop_values_map_t
Definition region-model-manager.h:233
initial_values_map_t m_initial_values_map
Definition region-model-manager.h:224
known_function_manager m_known_fn_mgr
Definition region-model-manager.h:320
const function_region * get_region_for_fndecl(tree fndecl)
const svalue * get_or_create_cast(tree type, const svalue *arg)
asm_output_values_map_t m_asm_output_values_map
Definition region-model-manager.h:267
bool reject_if_too_complex(svalue *sval)
const region * get_field_region(const region *parent, tree field)
consolidation_map< offset_region > m_offset_regions
Definition region-model-manager.h:304
const svalue * maybe_fold_unaryop(tree type, enum tree_code op, const svalue *arg)
errno_region m_errno_region
Definition region-model-manager.h:300
const svalue * get_or_create_int_cst(tree type, const poly_wide_int_ref &cst)
const code_region * get_code_region() const
Definition region-model-manager.h:113
consolidation_map< var_arg_region > m_var_arg_regions
Definition region-model-manager.h:314
const svalue * get_or_create_bits_within(tree type, const bit_range &bits, const svalue *inner_svalue)
hash_map< const region *, initial_svalue * > initial_values_map_t
Definition region-model-manager.h:223
auto_delete_vec< svalue > m_managed_dynamic_svalues
Definition region-model-manager.h:278
hash_map< unaryop_svalue::key_t, unaryop_svalue * > unaryop_values_map_t
Definition region-model-manager.h:230
const svalue * create_unique_svalue(tree type)
const svalue * maybe_fold_bits_within_svalue(tree type, const bit_range &bits, const svalue *inner_svalue)
pointer_values_map_t m_pointer_values_map
Definition region-model-manager.h:227
const region * create_region_for_alloca(const frame_region *frame)
bool m_checking_feasibility
Definition region-model-manager.h:273
const svalue * get_or_create_initial_value(const region *reg, bool check_poisoned=true)
const svalue * get_or_create_binop(tree type, enum tree_code op, const svalue *arg0, const svalue *arg1)
hash_map< tree, unknown_svalue * > unknowns_map_t
Definition region-model-manager.h:211
const svalue * maybe_get_char_from_string_cst(tree string_cst, tree byte_offset_cst)
bounded_ranges_manager * m_range_mgr
Definition region-model-manager.h:318
code_region m_code_region
Definition region-model-manager.h:285
const region * get_element_region(const region *parent, tree element_type, const svalue *index)
const svalue * get_or_create_widening_svalue(tree type, const function_point &point, const svalue *base_svalue, const svalue *iter_svalue)
compound_values_map_t m_compound_values_map
Definition region-model-manager.h:259
setjmp_values_map_t m_setjmp_values_map
Definition region-model-manager.h:221
consolidation_map< frame_region > m_frame_regions
Definition region-model-manager.h:307
const errno_region * get_errno_region() const
Definition region-model-manager.h:118
const_fn_result_values_map_t m_const_fn_result_values_map
Definition region-model-manager.h:271
const region * get_bit_range(const region *parent, tree type, const bit_range &bits)
consolidation_map< symbolic_region > m_symbolic_regions
Definition region-model-manager.h:308
const region * get_symbolic_region(const svalue *sval)
labels_map_t::iterator labels_iterator_t
Definition region-model-manager.h:291
const svalue * maybe_fold_asm_output_svalue(tree type, const vec< const svalue * > &inputs)
bool too_complex_p(const complexity &c) const
hash_map< bits_within_svalue::key_t, bits_within_svalue * > bits_within_values_map_t
Definition region-model-manager.h:244
consolidation_map< cast_region > m_cast_regions
Definition region-model-manager.h:306
const svalue * get_ptr_svalue(tree ptr_type, const region *pointee)
hash_map< sub_svalue::key_t, sub_svalue * > sub_values_map_t
Definition region-model-manager.h:236
fndecls_map_t m_fndecls_map
Definition region-model-manager.h:288
sub_values_map_t m_sub_values_map
Definition region-model-manager.h:237
const unknown_svalue * m_unknown_NULL
Definition region-model-manager.h:213
unaryop_values_map_t m_unaryop_values_map
Definition region-model-manager.h:231
unsigned m_next_symbol_id
Definition region-model-manager.h:199
conjured_values_map_t m_conjured_values_map
Definition region-model-manager.h:263
hash_map< tree, decl_region * > globals_map_t
Definition region-model-manager.h:295
widening_values_map_t m_widening_values_map
Definition region-model-manager.h:255
const heap_region * get_heap_region() const
Definition region-model-manager.h:112
const region * get_region_for_unexpected_tree_code(region_model_context *ctxt, tree t, const dump_location_t &loc)
bounded_ranges_manager * get_range_manager() const
Definition region-model-manager.h:151
void log_stats(logger *logger, bool show_objs) const
binop_values_map_t m_binop_values_map
Definition region-model-manager.h:234
hash_map< const_fn_result_svalue::key_t, const_fn_result_svalue * > const_fn_result_values_map_t
Definition region-model-manager.h:270
globals_map_t m_globals_map
Definition region-model-manager.h:297
constants_map_t m_constants_map
Definition region-model-manager.h:209
const globals_region * get_globals_region() const
Definition region-model-manager.h:114
const region * get_or_create_region_for_heap_alloc(const bitmap &base_regs_in_use)
string_map_t m_string_map
Definition region-model-manager.h:311
poisoned_values_map_t m_poisoned_values_map
Definition region-model-manager.h:217
const svalue * get_or_create_constant_svalue(tree cst_expr)
store_manager * get_store_manager()
Definition region-model-manager.h:150
globals_map_t::iterator globals_iterator_t
Definition region-model-manager.h:296
consolidation_map< sized_region > m_sized_regions
Definition region-model-manager.h:305
const call_string m_empty_call_string
Definition region-model-manager.h:201
bits_within_values_map_t m_bits_within_values_map
Definition region-model-manager.h:245
logger * get_logger() const
Definition region-model-manager.h:170
const svalue * maybe_fold_repeated_svalue(tree type, const svalue *outer_size, const svalue *inner_svalue)
fndecls_map_t::iterator fndecls_iterator_t
Definition region-model-manager.h:287
hash_map< asm_output_svalue::key_t, asm_output_svalue * > asm_output_values_map_t
Definition region-model-manager.h:266
void end_checking_feasibility(void)
Definition region-model-manager.h:168
const stack_region * get_stack_region() const
Definition region-model-manager.h:111
hash_map< tree, label_region * > labels_map_t
Definition region-model-manager.h:290
const string_region * get_region_for_string(tree string_cst)
hash_map< repeated_svalue::key_t, repeated_svalue * > repeated_values_map_t
Definition region-model-manager.h:240
const root_region * get_root_region() const
Definition region-model-manager.h:110
hash_map< constant_svalue::key_t, constant_svalue * > constants_map_t
Definition region-model-manager.h:208
const svalue * get_or_create_constant_svalue(tree type, tree cst_expr)
root_region m_root_region
Definition region-model-manager.h:203
const svalue * get_or_create_setjmp_svalue(const setjmp_record &r, tree type)
consolidation_map< field_region > m_field_regions
Definition region-model-manager.h:302
const svalue * maybe_fold_binop(tree type, enum tree_code op, const svalue *arg0, const svalue *arg1)
consolidation_map< bit_range_region > m_bit_range_regions
Definition region-model-manager.h:313
hash_map< region_svalue::key_t, region_svalue * > pointer_values_map_t
Definition region-model-manager.h:226
hash_map< compound_svalue::key_t, compound_svalue * > compound_values_map_t
Definition region-model-manager.h:258
const label_region * get_region_for_label(tree label)
heap_region m_heap_region
Definition region-model-manager.h:205
const svalue * get_or_create_const_fn_result_svalue(tree type, tree fndecl, const vec< const svalue * > &inputs)
const region * get_offset_region(const region *parent, tree type, const svalue *byte_offset)
const frame_region * get_frame_region(const frame_region *calling_frame, const function &fun)
const svalue * get_or_create_compound_svalue(tree type, const binding_map &map)
hash_map< setjmp_svalue::key_t, setjmp_svalue * > setjmp_values_map_t
Definition region-model-manager.h:220
consolidation_map< element_region > m_element_regions
Definition region-model-manager.h:303
repeated_values_map_t m_repeated_values_map
Definition region-model-manager.h:241
store_manager m_store_mgr
Definition region-model-manager.h:316
const svalue * get_or_create_poisoned_svalue(enum poison_kind kind, tree type)
hash_map< tree, string_region * > string_map_t
Definition region-model-manager.h:310
void begin_checking_feasibility(void)
Definition region-model-manager.h:167
unknowns_map_t m_unknowns_map
Definition region-model-manager.h:212
const svalue * get_or_create_null_ptr(tree pointer_type)
const decl_region * get_region_for_global(tree expr)
const call_string & get_empty_call_string() const
Definition region-model-manager.h:41
globals_region m_globals_region
Definition region-model-manager.h:294
auto_delete_vec< region > m_managed_dynamic_regions
Definition region-model-manager.h:325
const svalue * get_or_create_asm_output_svalue(tree type, const gasm *asm_stmt, unsigned output_idx, const vec< const svalue * > &inputs)
known_function_manager * get_known_function_manager()
Definition region-model-manager.h:153
const svalue * get_or_create_asm_output_svalue(tree type, const char *asm_string, unsigned output_idx, unsigned num_outputs, const vec< const svalue * > &inputs)
hash_map< poisoned_svalue::key_t, poisoned_svalue * > poisoned_values_map_t
Definition region-model-manager.h:216
hash_map< tree, function_region * > fndecls_map_t
Definition region-model-manager.h:286
const svalue * maybe_undo_optimize_bit_field_compare(tree type, const compound_svalue *compound_sval, tree cst, const svalue *arg1)
const svalue * get_or_create_unmergeable(const svalue *arg)
const svalue * maybe_fold_sub_svalue(tree type, const svalue *parent_svalue, const region *subregion)
const region * get_sized_region(const region *parent, tree type, const svalue *byte_size_sval)
stack_region m_stack_region
Definition region-model-manager.h:204
region_model_manager(logger *logger=NULL)
const svalue * get_or_create_conjured_svalue(tree type, const gimple *stmt, const region *id_reg, const conjured_purge &p, unsigned idx=0)
const var_arg_region * get_var_arg_region(const frame_region *parent, unsigned idx)
logger * m_logger
Definition region-model-manager.h:197
unmergeable_values_map_t m_unmergeable_values_map
Definition region-model-manager.h:249
hash_map< conjured_svalue::key_t, conjured_svalue * > conjured_values_map_t
Definition region-model-manager.h:262
const region * get_unknown_symbolic_region(tree region_type)
thread_local_region m_thread_local_region
Definition region-model-manager.h:299
const svalue * get_or_create_unknown_svalue(tree type)
void dump_untracked_regions() const
const svalue * get_or_create_repeated_svalue(tree type, const svalue *outer_size, const svalue *inner_svalue)
unsigned alloc_symbol_id()
Definition region-model-manager.h:38
unsigned get_num_symbols() const
Definition region-model-manager.h:37
const svalue * get_or_create_sub_svalue(tree type, const svalue *parent_svalue, const region *subregion)
const region * get_cast_region(const region *original_region, tree type)
complexity m_max_complexity
Definition region-model-manager.h:281
const svalue * get_or_create_unaryop(tree type, enum tree_code op, const svalue *arg)
labels_map_t m_labels_map
Definition region-model-manager.h:292
hash_map< widening_svalue::key_t, widening_svalue @endverbatim * > widening_values_map_t
Definition region-model-manager.h:254
Definition analyzer.h:529
Definition dumpfile.h:446
Definition genmatch.cc:1496
Definition poly-int.h:378
class bitmap_head * bitmap
Definition coretypes.h:51
union tree_node * tree
Definition coretypes.h:97
static struct string2counter_map map[debug_counter_number_of_counters]
Definition dbgcnt.cc:39
void verbatim(const char *,...) ATTRIBUTE_GCC_DIAG(1
tree_code
Definition genmatch.cc:992
Definition access-diagram.h:30
poison_kind
Definition svalue.h:425
poly_int< N, C > r
Definition poly-int.h:774
Definition complexity.h:31
Definition function.h:249
Definition gengtype.h:252
#define NULL
Definition system.h:50