21#ifndef GCC_ANALYZER_EXPLODED_GRAPH_H
22#define GCC_ANALYZER_EXPLODED_GRAPH_H
54 bool *out_could_have_done_work =
nullptr);
61 bool warn (std::unique_ptr<pending_diagnostic> d,
63 void add_note (std::unique_ptr<pending_note> pn)
final override;
64 void add_event (std::unique_ptr<checker_event> event)
final override;
79 const svalue *rhs)
final override;
109 unsigned *out_sm_idx,
110 std::unique_ptr<sm_context> *out_sm_context)
override;
232 const final override;
270 bool *out_could_have_done_work,
275 bool *out_terminate_path,
276 bool *out_unknown_side_effects,
280 bool unknown_side_effects,
285 const gcall *call_stmt,
293 const gcall *call_stmt,
384 const superedge *sedge,
bool could_do_work,
385 std::unique_ptr<custom_edge_info> custom_info);
387 const final override;
390 std::unique_ptr<json::object>
to_json ()
const;
428 const bool is_returning_call =
false)
460 const gcall *longjmp_call)
552 template <
typename T>
557 template <
typename T>
560 entry.m_key =
reinterpret_cast<key_type> (1);
562 template <
typename T>
567 template <
typename T>
570 return entry.m_key ==
reinterpret_cast<key_type> (1);
572 template <
typename T>
575 return entry.m_key ==
NULL;
622 template <
typename T>
627 template <
typename T>
630 entry.m_key =
reinterpret_cast<key_type> (1);
632 template <
typename T>
637 template <
typename T>
640 return entry.m_key ==
reinterpret_cast<key_type> (1);
642 template <
typename T>
645 return entry.m_key ==
NULL;
691 std::unique_ptr<json::array>
to_json ()
const;
735 std::unique_ptr<json::object>
to_json ()
const;
747 return cmp (*
this, other) < 0;
752 return cmp (*
this, other) == 0;
757 return !(*
this == other || *
this < other);
832 const superedge *sedge,
bool could_do_work,
833 std::unique_ptr<custom_edge_info> custom =
NULL);
870 std::unique_ptr<json::object>
to_json ()
const;
980 std::unique_ptr<rejected_constraint> rc)
990 std::unique_ptr<rejected_constraint>
m_rc;
1010 std::unique_ptr<rejected_constraint> *out_rc);
1036 virtual std::unique_ptr<stmt_finder>
clone ()
const = 0;
state
Definition cfgbuild.cc:168
Definition analysis-plan.h:35
Definition call-string.h:48
Definition call-summary.h:34
Definition checker-path.h:32
Definition analyzer.h:367
Definition diagnostic-manager.h:154
Definition exploded-graph.h:425
void print(pretty_printer *pp) const final override
Definition exploded-graph.h:433
const bool m_is_returning_call
Definition exploded-graph.h:449
bool update_model(region_model *model, const exploded_edge *eedge, region_model_context *ctxt) const final override
void add_events_to_path(checker_path *emission_path, const exploded_edge &eedge) const final override
const gcall * m_dynamic_call
Definition exploded-graph.h:448
dynamic_call_info_t(const gcall *dynamic_call, const bool is_returning_call=false)
Definition exploded-graph.h:427
Definition region-model.h:1241
Definition exploded-graph.h:381
std::unique_ptr< json::object > to_json() const
void dump_dot_label(pretty_printer *pp) const
bool m_could_do_work_p
Definition exploded-graph.h:418
exploded_edge(exploded_node *src, exploded_node *dest, const superedge *sedge, bool could_do_work, std::unique_ptr< custom_edge_info > custom_info)
std::unique_ptr< custom_edge_info > m_custom_info
Definition exploded-graph.h:398
void dump_dot(graphviz_out *gv, const dump_args_t &args) const final override
bool could_do_work_p() const
Definition exploded-graph.h:400
DISABLE_COPY_AND_ASSIGN(exploded_edge)
const superedge *const m_sedge
Definition exploded-graph.h:393
Definition exploded-graph.h:791
stats * get_global_stats()
Definition exploded-graph.h:863
const call_string_data_map_t * get_per_call_string_data() const
Definition exploded-graph.h:874
const state_purge_map * get_purge_map() const
Definition exploded-graph.h:808
const extrinsic_state & m_ext_state
Definition exploded-graph.h:918
void detect_infinite_recursion(exploded_node *enode)
Definition infinite-recursion.cc:603
call_string_data_map_t m_per_call_string_data
Definition exploded-graph.h:935
stats m_functionless_stats
Definition exploded-graph.h:933
exploded_node * find_previous_entry_to(function *top_of_stack_fun, exploded_node *enode) const
Definition infinite-recursion.cc:346
auto_vec< int > m_PK_AFTER_SUPERNODE_per_snode
Definition exploded-graph.h:937
function_stat_map_t m_per_function_stats
Definition exploded-graph.h:932
void detect_infinite_loops()
Definition infinite-loop.cc:554
void process_node(exploded_node *node)
engine * get_engine() const
Definition exploded-graph.h:807
point_map_t m_per_point_data
Definition exploded-graph.h:912
diagnostic_manager & get_diagnostic_manager()
Definition exploded-graph.h:854
exploded_node * add_function_entry(const function &fun)
per_function_data * get_per_function_data(function *) const
log_user m_logger
Definition exploded-graph.h:899
exploded_edge * add_edge(exploded_node *src, exploded_node *dest, const superedge *sedge, bool could_do_work, std::unique_ptr< custom_edge_info > custom=NULL)
const supergraph & get_supergraph() const
Definition exploded-graph.h:805
const analysis_plan & get_analysis_plan() const
Definition exploded-graph.h:809
map_t m_point_and_state_to_node
Definition exploded-graph.h:907
const supergraph & m_sg
Definition exploded-graph.h:897
exploded_graph(const supergraph &sg, logger *logger, const extrinsic_state &ext_state, const state_purge_map *purge_map, const analysis_plan &plan, int verbosity)
diagnostic_manager m_diagnostic_manager
Definition exploded-graph.h:927
hash_map< function *, per_function_data * > per_function_data_t
Definition exploded-graph.h:924
void build_initial_worklist()
per_call_string_data * get_or_create_per_call_string_data(const call_string &)
const diagnostic_manager & get_diagnostic_manager() const
Definition exploded-graph.h:858
exploded_node * get_or_create_node(const program_point &point, const program_state &state, exploded_node *enode_for_diag)
per_program_point_data * get_per_program_point_data(const program_point &) const
logger * get_logger() const
Definition exploded-graph.h:803
exploded_node * m_origin
Definition exploded-graph.h:916
per_function_data * get_or_create_per_function_data(function *)
hash_map< const program_point *, per_program_point_data *, eg_point_hash_map_traits > point_map_t
Definition exploded-graph.h:911
void on_escaped_function(tree fndecl)
void dump_exploded_nodes() const
hash_map< const call_string *, per_call_string_data * > call_string_data_map_t
Definition exploded-graph.h:794
hash_set< function * > m_functions_with_enodes
Definition exploded-graph.h:941
stats * get_or_create_function_stats(function *fn)
void print_bar_charts(pretty_printer *pp) const
void dump_states_for_supernode(FILE *, const supernode *snode) const
stats m_global_stats
Definition exploded-graph.h:930
const extrinsic_state & get_ext_state() const
Definition exploded-graph.h:806
bool maybe_create_dynamic_call(const gcall *call, tree fn_decl, exploded_node *node, program_state next_state, program_point &next_point, uncertainty_t *uncertainty, logger *logger)
worklist m_worklist
Definition exploded-graph.h:914
void dump_stats(FILE *) const
int get_scc_id(const supernode &node) const
Definition exploded-graph.h:877
ordered_hash_map< function *, stats * > function_stat_map_t
Definition exploded-graph.h:931
std::unique_ptr< json::object > to_json() const
const state_purge_map *const m_purge_map
Definition exploded-graph.h:920
const analysis_plan & m_plan
Definition exploded-graph.h:922
per_program_point_data * get_or_create_per_program_point_data(const program_point &)
per_function_data_t m_per_function_data
Definition exploded-graph.h:925
exploded_node * get_origin() const
Definition exploded-graph.h:811
void save_diagnostic(const state_machine &sm, const exploded_node *enode, const supernode *node, const gimple *stmt, stmt_finder *finder, tree var, state_machine::state_t state, pending_diagnostic *d)
bool maybe_process_run_of_before_supernode_enodes(exploded_node *node)
exploded_node * get_node_by_index(int idx) const
DISABLE_COPY_AND_ASSIGN(exploded_graph)
hash_map< const point_and_state *, exploded_node *, eg_hash_map_traits > map_t
Definition exploded-graph.h:906
Definition exploded-graph.h:203
DISABLE_COPY_AND_ASSIGN(exploded_node)
const point_and_state * get_ps_key() const
Definition exploded-graph.h:330
void on_stmt_post(const gimple *stmt, program_state *state, bool unknown_side_effects, region_model_context *ctxt)
void dump(const extrinsic_state &ext_state) const
unsigned m_num_processed_stmts
Definition exploded-graph.h:374
status
Definition exploded-graph.h:210
@ STATUS_PROCESSED
Definition exploded-graph.h:215
@ STATUS_WORKLIST
Definition exploded-graph.h:212
@ STATUS_MERGER
Definition exploded-graph.h:219
@ STATUS_BULK_MERGED
Definition exploded-graph.h:222
function * get_function() const
Definition exploded-graph.h:317
void dump_to_pp(pretty_printer *pp, const extrinsic_state &ext_state) const
bool on_edge(exploded_graph &eg, const superedge *succ, program_point *next_point, program_state *next_state, uncertainty_t *uncertainty)
void replay_call_summary(exploded_graph &eg, const supernode *snode, const gcall *call_stmt, program_state *state, path_context *path_ctxt, const function &called_fn, call_summary *summary, region_model_context *ctxt)
unsigned get_num_diagnostics() const
Definition exploded-graph.h:346
void dump_saved_diagnostics(pretty_printer *pp) const
void dump_dot(graphviz_out *gv, const dump_args_t &args) const final override
void on_stmt_pre(exploded_graph &eg, const gimple *stmt, program_state *state, bool *out_terminate_path, bool *out_unknown_side_effects, region_model_context *ctxt)
std::unique_ptr< json::object > to_json(const extrinsic_state &ext_state) const
const gimple * get_stmt() const
Definition exploded-graph.h:325
void add_diagnostic(const saved_diagnostic *sd)
Definition exploded-graph.h:342
void dump_processed_stmts(pretty_printer *pp) const
const point_and_state m_ps
Definition exploded-graph.h:360
on_stmt_flags replay_call_summaries(exploded_graph &eg, const supernode *snode, const gcall *call_stmt, program_state *state, path_context *path_ctxt, const function &called_fn, per_function_data &called_fn_data, region_model_context *ctxt)
const char * get_dot_fillcolor() const
void dump_dot_id(pretty_printer *pp) const
const program_state & get_state() const
Definition exploded-graph.h:328
static const char * status_to_str(enum status s)
void dump_succs_and_preds(FILE *outf) const
const int m_index
Definition exploded-graph.h:370
const gimple * get_processed_stmt(unsigned idx) const
void set_status(enum status status)
Definition exploded-graph.h:336
const program_point * get_point_key() const
Definition exploded-graph.h:331
enum status get_status() const
Definition exploded-graph.h:335
int get_stack_depth() const
Definition exploded-graph.h:321
on_stmt_flags on_stmt(exploded_graph &eg, const supernode *snode, const gimple *stmt, program_state *state, uncertainty_t *uncertainty, bool *out_could_have_done_work, path_context *path_ctxt)
exploded_node(const point_and_state &ps, int index)
const program_point & get_point() const
Definition exploded-graph.h:312
void dump(FILE *fp, const extrinsic_state &ext_state) const
auto_vec< const saved_diagnostic * > m_saved_diagnostics
Definition exploded-graph.h:366
const supernode * get_supernode() const
Definition exploded-graph.h:313
void detect_leaks(exploded_graph &eg)
hashval_t hash() const
Definition exploded-graph.h:228
void on_longjmp(exploded_graph &eg, const gcall *call, program_state *new_state, region_model_context *ctxt)
enum status m_status
Definition exploded-graph.h:362
const saved_diagnostic * get_saved_diagnostic(unsigned idx) const
Definition exploded-graph.h:350
Definition exploded-graph.h:947
exploded_path()
Definition exploded-graph.h:949
unsigned length() const
Definition exploded-graph.h:952
exploded_node * get_final_enode() const
void dump(FILE *fp, const extrinsic_state *ext_state) const
void dump(const extrinsic_state *ext_state=NULL) const
bool find_stmt_backwards(const gimple *search_stmt, int *out_idx) const
bool feasible_p(logger *logger, std::unique_ptr< feasibility_problem > *out, engine *eng, const exploded_graph *eg) const
void dump_to_file(const char *filename, const extrinsic_state &ext_state) const
void dump_to_pp(pretty_printer *pp, const extrinsic_state *ext_state) const
auto_vec< const exploded_edge * > m_edges
Definition exploded-graph.h:969
exploded_path(const exploded_path &other)
Definition program-state.h:31
engine * get_engine() const
Definition program-state.h:60
Definition exploded-graph.h:975
const exploded_edge & m_eedge
Definition exploded-graph.h:988
void dump_to_pp(pretty_printer *pp) const
const gimple * m_last_stmt
Definition exploded-graph.h:989
unsigned m_eedge_idx
Definition exploded-graph.h:987
feasibility_problem(unsigned eedge_idx, const exploded_edge &eedge, const gimple *last_stmt, std::unique_ptr< rejected_constraint > rc)
Definition exploded-graph.h:977
std::unique_ptr< rejected_constraint > m_rc
Definition exploded-graph.h:990
Definition exploded-graph.h:997
bool maybe_update_for_edge(logger *logger, const exploded_edge *eedge, region_model_context *ctxt, std::unique_ptr< rejected_constraint > *out_rc)
feasibility_state(const region_model &model, const supergraph &sg)
auto_sbitmap m_snodes_visited
Definition exploded-graph.h:1020
feasibility_state(region_model_manager *manager, const supergraph &sg)
void dump_to_pp(pretty_printer *pp, bool simple, bool multiline) const
feasibility_state(const feasibility_state &other)
region_model m_model
Definition exploded-graph.h:1019
const region_model & get_model() const
Definition exploded-graph.h:1013
feasibility_state & operator=(const feasibility_state &other)
const auto_sbitmap & get_snodes_visited() const
Definition exploded-graph.h:1014
void update_for_stmt(const gimple *stmt)
Definition exploded-graph.h:39
void on_condition(const svalue *lhs, enum tree_code op, const svalue *rhs) final override
void on_unknown_change(const svalue *sval, bool is_mutable) final override
void terminate_path() final override
exploded_graph * m_eg
Definition exploded-graph.h:119
const extrinsic_state & m_ext_state
Definition exploded-graph.h:126
logger * get_logger() final override
Definition exploded-graph.h:68
void on_svalue_leak(const svalue *) override
void on_pop_frame(const frame_region *frame_reg) final override
void on_liveness_change(const svalue_set &live_svalues, const region_model *model) final override
void add_note(std::unique_ptr< pending_note > pn) final override
bool * m_out_could_have_done_work
Definition exploded-graph.h:129
void on_state_leak(const state_machine &sm, const svalue *sval, state_machine::state_t state)
void maybe_did_work() override
void add_event(std::unique_ptr< checker_event > event) final override
program_state * m_new_state
Definition exploded-graph.h:123
log_user m_logger
Definition exploded-graph.h:120
const program_state * m_old_state
Definition exploded-graph.h:122
void on_unusable_in_infinite_loop() override
Definition exploded-graph.h:117
void on_phi(const gphi *phi, tree rhs) final override
void on_unexpected_tree_code(tree t, const dump_location_t &loc) final override
void on_escaped_function(tree fndecl) final override
void bifurcate(std::unique_ptr< custom_edge_info > info) final override
stmt_finder * m_stmt_finder
Definition exploded-graph.h:125
path_context * m_path_ctxt
Definition exploded-graph.h:128
void purge_state_involving(const svalue *sval) final override
void on_bounded_ranges(const svalue &sval, const bounded_ranges &ranges) final override
uncertainty_t * get_uncertainty() final override
impl_region_model_context(program_state *state, const extrinsic_state &ext_state, uncertainty_t *uncertainty, logger *logger=NULL)
const gimple * m_stmt
Definition exploded-graph.h:124
uncertainty_t * m_uncertainty
Definition exploded-graph.h:127
const gimple * get_stmt() const override
Definition exploded-graph.h:112
bool get_state_map_by_name(const char *name, sm_state_map **out_smap, const state_machine **out_sm, unsigned *out_sm_idx, std::unique_ptr< sm_context > *out_sm_context) override
bool checking_for_infinite_loop_p() const override
Definition exploded-graph.h:116
const extrinsic_state * get_ext_state() const final override
Definition exploded-graph.h:101
const exploded_graph * get_eg() const override
Definition exploded-graph.h:113
impl_region_model_context(exploded_graph &eg, exploded_node *enode_for_diag, const program_state *old_state, program_state *new_state, uncertainty_t *uncertainty, path_context *path_ctxt, const gimple *stmt, stmt_finder *stmt_finder=NULL, bool *out_could_have_done_work=nullptr)
exploded_node * m_enode_for_diag
Definition exploded-graph.h:121
bool warn(std::unique_ptr< pending_diagnostic > d, const stmt_finder *custom_finder=NULL) final override
Definition analyzer-logging.h:147
logger * get_logger() const
Definition analyzer-logging.h:152
Definition analyzer-logging.h:34
Definition analyzer.h:399
Definition pending-diagnostic.h:190
Definition exploded-graph.h:137
hashval_t m_hash
Definition exploded-graph.h:173
bool operator==(const point_and_state &other) const
Definition exploded-graph.h:154
void validate(const extrinsic_state &ext_state) const
const program_state & get_state() const
Definition exploded-graph.h:160
program_state m_state
Definition exploded-graph.h:172
program_point m_point
Definition exploded-graph.h:171
point_and_state(const program_point &point, const program_state &state)
Definition exploded-graph.h:139
const program_point & get_point() const
Definition exploded-graph.h:159
hashval_t hash() const
Definition exploded-graph.h:150
void set_state(const program_state &state)
Definition exploded-graph.h:162
Definition program-point.h:175
function * get_function() const
Definition program-point.h:209
const supernode * get_supernode() const
Definition program-point.h:205
int get_stack_depth() const
Definition program-point.h:244
enum point_kind get_kind() const
Definition program-point.h:227
const gimple * get_stmt() const
Definition program-point.h:219
Definition program-state.h:209
Definition region-model.h:718
Definition region-model-manager.h:32
Definition region-model.h:263
Definition exploded-graph.h:457
setjmp_record m_setjmp_record
Definition exploded-graph.h:505
const program_point & get_setjmp_point() const
Definition exploded-graph.h:477
bool update_model(region_model *model, const exploded_edge *eedge, region_model_context *ctxt) const final override
void print(pretty_printer *pp) const final override
Definition exploded-graph.h:465
const exploded_node * get_enode_origin() const
Definition exploded-graph.h:499
const gcall * get_setjmp_call() const
Definition exploded-graph.h:489
const gcall * get_longjmp_call() const
Definition exploded-graph.h:494
rewind_info_t(const setjmp_record &setjmp_record, const gcall *longjmp_call)
Definition exploded-graph.h:459
void add_events_to_path(checker_path *emission_path, const exploded_edge &eedge) const final override
const gcall * m_longjmp_call
Definition exploded-graph.h:506
Definition diagnostic-manager.h:31
Definition program-state.h:77
Definition state-purge.h:78
Definition exploded-graph.h:1033
virtual void update_event_loc_info(event_loc_info &)=0
virtual ~stmt_finder()
Definition exploded-graph.h:1035
virtual const gimple * find_stmt(const exploded_path &epath)=0
virtual std::unique_ptr< stmt_finder > clone() const =0
Definition exploded-graph.h:680
void strong_connect(unsigned index)
int get_scc_id(int node_index) const
Definition exploded-graph.h:684
auto_vec< per_node_data > m_per_node
Definition exploded-graph.h:709
const supergraph & m_sg
Definition exploded-graph.h:707
strongly_connected_components(const supergraph &sg, logger *logger)
auto_vec< unsigned > m_stack
Definition exploded-graph.h:708
std::unique_ptr< json::array > to_json() const
Definition supergraph.h:314
Definition supergraph.h:109
Definition supergraph.h:235
const int m_index
Definition supergraph.h:307
Definition exploded-graph.h:739
bool operator<(const key_t &other) const
Definition exploded-graph.h:745
const worklist & m_worklist
Definition exploded-graph.h:771
bool operator==(const key_t &other) const
Definition exploded-graph.h:750
exploded_node * m_enode
Definition exploded-graph.h:772
bool operator>(const key_t &other) const
Definition exploded-graph.h:755
static int cmp(const key_t &ka, const key_t &kb)
int get_scc_id(const exploded_node *enode) const
Definition exploded-graph.h:763
key_t(const worklist &w, exploded_node *enode)
Definition exploded-graph.h:741
Definition exploded-graph.h:723
std::unique_ptr< json::object > to_json() const
void add_node(exploded_node *enode)
strongly_connected_components m_scc
Definition exploded-graph.h:778
worklist(const exploded_graph &eg, const analysis_plan &plan)
queue_t m_queue
Definition exploded-graph.h:783
exploded_node * take_next()
exploded_node * peek_next()
const analysis_plan & m_plan
Definition exploded-graph.h:779
int get_scc_id(const supernode &snode) const
Definition exploded-graph.h:730
fibonacci_heap< key_t, exploded_node > queue_t
Definition exploded-graph.h:782
Definition dumpfile.h:446
Definition fibonacci_heap.h:143
Definition ordered-hash-map.h:35
Definition pretty-print.h:241
Definition shortest-paths.h:49
union tree_node * tree
Definition coretypes.h:97
void final(rtx_insn *first, FILE *file, int optimize_p)
Definition final.cc:2004
tree_code
Definition genmatch.cc:992
Definition access-diagram.h:30
shortest_paths< eg_traits, exploded_path > shortest_exploded_paths
Definition exploded-graph.h:1025
@ NUM_POINT_KINDS
Definition program-point.h:45
@ PK_BEFORE_STMT
Definition program-point.h:38
void pp_string(pretty_printer *pp, const char *str)
Definition pretty-print.cc:2653
Definition constraint-manager.h:123
Definition exploded-graph.h:529
static bool equal_keys(const key_type &k1, const key_type &k2)
Definition exploded-graph.h:540
static void mark_empty(T &entry)
Definition exploded-graph.h:563
static void mark_deleted(T &entry)
Definition exploded-graph.h:558
static bool is_deleted(const T &entry)
Definition exploded-graph.h:568
exploded_node * compare_type
Definition exploded-graph.h:532
static const bool empty_zero_p
Definition exploded-graph.h:577
const point_and_state * key_type
Definition exploded-graph.h:530
static void remove(T &)
Definition exploded-graph.h:553
static hashval_t hash(const key_type &k)
Definition exploded-graph.h:534
static bool is_empty(const T &entry)
Definition exploded-graph.h:573
exploded_node * value_type
Definition exploded-graph.h:531
Definition exploded-graph.h:599
static bool is_deleted(const T &entry)
Definition exploded-graph.h:638
static const bool empty_zero_p
Definition exploded-graph.h:647
static void mark_empty(T &entry)
Definition exploded-graph.h:633
static hashval_t hash(const key_type &k)
Definition exploded-graph.h:604
per_program_point_data * compare_type
Definition exploded-graph.h:602
const program_point * key_type
Definition exploded-graph.h:600
per_program_point_data * value_type
Definition exploded-graph.h:601
static void mark_deleted(T &entry)
Definition exploded-graph.h:628
static bool is_empty(const T &entry)
Definition exploded-graph.h:643
static bool equal_keys(const key_type &k1, const key_type &k2)
Definition exploded-graph.h:610
static void remove(T &)
Definition exploded-graph.h:623
Definition exploded-graph.h:184
bool show_enode_details_p(const exploded_node &enode) const
const exploded_graph & m_eg
Definition exploded-graph.h:192
virtual void dump_extra_info(const exploded_node *, pretty_printer *) const
Definition exploded-graph.h:190
dump_args_t(const exploded_graph &eg)
Definition exploded-graph.h:185
Definition exploded-graph.h:179
exploded_node node_t
Definition exploded-graph.h:180
exploded_cluster cluster_t
Definition exploded-graph.h:194
exploded_edge edge_t
Definition exploded-graph.h:181
exploded_graph graph_t
Definition exploded-graph.h:182
Definition event-loc-info.h:29
Definition exploded-graph.h:246
static on_stmt_flags terminate_path()
Definition exploded-graph.h:250
on_stmt_flags()
Definition exploded-graph.h:247
bool m_terminate_path
Definition exploded-graph.h:257
on_stmt_flags(bool terminate_path)
Definition exploded-graph.h:260
Definition exploded-graph.h:653
stats m_stats
Definition exploded-graph.h:659
const call_string & m_key
Definition exploded-graph.h:658
per_call_string_data(const call_string &key, int num_supernodes)
Definition exploded-graph.h:654
Definition exploded-graph.h:665
per_function_data()
Definition exploded-graph.h:666
auto_vec< call_summary * > m_summaries
Definition exploded-graph.h:671
void add_call_summary(exploded_node *node)
Definition exploded-graph.h:583
const program_point m_key
Definition exploded-graph.h:588
int m_excess_enodes
Definition exploded-graph.h:592
per_program_point_data(const program_point &key)
Definition exploded-graph.h:584
auto_vec< exploded_node * > m_enodes
Definition exploded-graph.h:589
const exploded_node * m_enode
Definition svalue.h:550
const gcall * m_setjmp_call
Definition svalue.h:551
Definition exploded-graph.h:512
void log(logger *logger) const
void dump(FILE *out) const
int m_num_supernodes
Definition exploded-graph.h:522
int m_node_reuse_after_merge_count
Definition exploded-graph.h:521
stats(int num_supernodes)
int get_total_enodes() const
int m_num_nodes[NUM_POINT_KINDS]
Definition exploded-graph.h:519
int m_node_reuse_count
Definition exploded-graph.h:520
Definition exploded-graph.h:695
per_node_data()
Definition exploded-graph.h:696
bool m_on_stack
Definition exploded-graph.h:702
int m_index
Definition exploded-graph.h:700
int m_lowlink
Definition exploded-graph.h:701
Definition function.h:249
Definition ira-emit.cc:158
Definition gengtype.h:377
Definition genautomata.cc:669
#define NULL
Definition system.h:50
#define gcc_assert(EXPR)
Definition system.h:814
#define false
Definition system.h:888