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,
79 const svalue *rhs)
final override;
109 unsigned *out_sm_idx,
110 std::unique_ptr<sm_context> *out_sm_context)
override;
238 const final override;
276 bool *out_could_have_done_work,
281 bool *out_terminate_path,
282 bool *out_unknown_side_effects,
286 bool unknown_side_effects,
291 const gcall &call_stmt,
299 const gcall &call_stmt,
399 const superedge *sedge,
bool could_do_work,
400 std::unique_ptr<custom_edge_info> custom_info);
402 const final override;
405 std::unique_ptr<json::object>
to_json ()
const;
443 const bool is_returning_call =
false)
475 const gcall &longjmp_call)
567 template <
typename T>
572 template <
typename T>
575 entry.m_key =
reinterpret_cast<key_type> (1);
577 template <
typename T>
580 entry.m_key =
nullptr;
582 template <
typename T>
585 return entry.m_key ==
reinterpret_cast<key_type> (1);
587 template <
typename T>
590 return entry.m_key ==
nullptr;
637 template <
typename T>
642 template <
typename T>
645 entry.m_key =
reinterpret_cast<key_type> (1);
647 template <
typename T>
650 entry.m_key =
nullptr;
652 template <
typename T>
655 return entry.m_key ==
reinterpret_cast<key_type> (1);
657 template <
typename T>
660 return entry.m_key ==
nullptr;
706 std::unique_ptr<json::array>
to_json ()
const;
750 std::unique_ptr<json::object>
to_json ()
const;
762 return cmp (*
this, other) < 0;
767 return cmp (*
this, other) == 0;
772 return !(*
this == other || *
this < other);
781 if (snode ==
nullptr)
848 const superedge *sedge,
bool could_do_work,
849 std::unique_ptr<custom_edge_info>
custom =
nullptr);
886 std::unique_ptr<json::object>
to_json ()
const;
1000 std::unique_ptr<rejected_constraint> rc)
1010 std::unique_ptr<rejected_constraint>
m_rc;
1030 std::unique_ptr<rejected_constraint> *out_rc);
1056 virtual std::unique_ptr<stmt_finder>
clone ()
const = 0;
Definition analysis-plan.h:35
Definition call-string.h:48
Definition call-summary.h:34
Definition checker-event.h:97
Definition checker-path.h:32
Definition diagnostic-manager.h:154
void print(pretty_printer *pp) const final override
Definition exploded-graph.h:448
const bool m_is_returning_call
Definition exploded-graph.h:464
bool update_model(region_model *model, const exploded_edge *eedge, region_model_context *ctxt) const final override
dynamic_call_info_t(const gcall &dynamic_call, const bool is_returning_call=false)
Definition exploded-graph.h:442
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:463
Definition region-model.h:1352
Definition exploded-graph.h:396
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:433
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:413
void dump_dot(graphviz_out *gv, const dump_args_t &args) const final override
bool could_do_work_p() const
Definition exploded-graph.h:415
DISABLE_COPY_AND_ASSIGN(exploded_edge)
const superedge *const m_sedge
Definition exploded-graph.h:408
Definition exploded-graph.h:806
hash_map< const point_and_state *, exploded_node *, eg_hash_map_traits > map_t
Definition exploded-graph.h:926
stats * get_global_stats()
Definition exploded-graph.h:879
const call_string_data_map_t * get_per_call_string_data() const
Definition exploded-graph.h:890
const state_purge_map * get_purge_map() const
Definition exploded-graph.h:823
const extrinsic_state & m_ext_state
Definition exploded-graph.h:938
void detect_infinite_recursion(exploded_node *enode)
Definition infinite-recursion.cc:585
call_string_data_map_t m_per_call_string_data
Definition exploded-graph.h:955
stats m_functionless_stats
Definition exploded-graph.h:953
exploded_node * find_previous_entry_to(function *top_of_stack_fun, exploded_node *enode) const
Definition infinite-recursion.cc:328
auto_vec< int > m_PK_AFTER_SUPERNODE_per_snode
Definition exploded-graph.h:957
function_stat_map_t m_per_function_stats
Definition exploded-graph.h:952
exploded_edge * add_edge(exploded_node *src, exploded_node *dest, const superedge *sedge, bool could_do_work, std::unique_ptr< custom_edge_info > custom=nullptr)
void detect_infinite_loops()
Definition infinite-loop.cc:535
void process_node(exploded_node *node)
engine * get_engine() const
Definition exploded-graph.h:822
point_map_t m_per_point_data
Definition exploded-graph.h:932
diagnostic_manager & get_diagnostic_manager()
Definition exploded-graph.h:870
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:919
const supergraph & get_supergraph() const
Definition exploded-graph.h:820
const analysis_plan & get_analysis_plan() const
Definition exploded-graph.h:824
map_t m_point_and_state_to_node
Definition exploded-graph.h:927
const supergraph & m_sg
Definition exploded-graph.h:917
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:947
hash_map< function *, per_function_data * > per_function_data_t
Definition exploded-graph.h:944
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:874
per_program_point_data * get_per_program_point_data(const program_point &) const
logger * get_logger() const
Definition exploded-graph.h:818
exploded_node * m_origin
Definition exploded-graph.h:936
per_function_data * get_or_create_per_function_data(function *)
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:809
hash_set< function * > m_functions_with_enodes
Definition exploded-graph.h:961
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
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)
stats m_global_stats
Definition exploded-graph.h:950
ordered_hash_map< function *, stats * > function_stat_map_t
Definition exploded-graph.h:951
const extrinsic_state & get_ext_state() const
Definition exploded-graph.h:821
worklist m_worklist
Definition exploded-graph.h:934
void dump_stats(FILE *) const
int get_scc_id(const supernode &node) const
Definition exploded-graph.h:893
hash_map< const program_point *, per_program_point_data *, eg_point_hash_map_traits > point_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:940
const analysis_plan & m_plan
Definition exploded-graph.h:942
void unwind_from_exception(exploded_node &enode, const gimple *stmt, region_model_context *ctxt)
exploded_node * get_or_create_node(const program_point &point, const program_state &state, exploded_node *enode_for_diag, bool add_to_worklist=true)
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:945
exploded_node * get_origin() const
Definition exploded-graph.h:826
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)
Definition exploded-graph.h:205
DISABLE_COPY_AND_ASSIGN(exploded_node)
const point_and_state * get_ps_key() const
Definition exploded-graph.h:345
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:389
status
Definition exploded-graph.h:212
@ special
Definition exploded-graph.h:221
@ bulk_merged
Definition exploded-graph.h:228
@ worklist
Definition exploded-graph.h:214
@ merger
Definition exploded-graph.h:225
@ processed
Definition exploded-graph.h:217
function * get_function() const
Definition exploded-graph.h:332
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)
unsigned get_num_diagnostics() const
Definition exploded-graph.h:361
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:340
void add_diagnostic(const saved_diagnostic *sd)
Definition exploded-graph.h:357
void dump_processed_stmts(pretty_printer *pp) const
const point_and_state m_ps
Definition exploded-graph.h:375
void on_resx(exploded_graph &eg, const gresx &resx, program_state *new_state, 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:343
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:385
const gimple * get_processed_stmt(unsigned idx) const
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)
const program_point * get_point_key() const
Definition exploded-graph.h:346
enum status get_status() const
Definition exploded-graph.h:350
void set_status(enum status s)
Definition exploded-graph.h:351
int get_stack_depth() const
Definition exploded-graph.h:336
void on_longjmp(exploded_graph &eg, const gcall &call, program_state *new_state, region_model_context *ctxt)
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:327
void dump(FILE *fp, const extrinsic_state &ext_state) const
auto_vec< const saved_diagnostic * > m_saved_diagnostics
Definition exploded-graph.h:381
const supernode * get_supernode() const
Definition exploded-graph.h:328
void detect_leaks(exploded_graph &eg)
hashval_t hash() const
Definition exploded-graph.h:234
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)
enum status m_status
Definition exploded-graph.h:377
void on_throw(exploded_graph &eg, const gcall &call, program_state *new_state, bool is_rethrow, region_model_context *ctxt)
const saved_diagnostic * get_saved_diagnostic(unsigned idx) const
Definition exploded-graph.h:365
Definition exploded-graph.h:967
exploded_path()
Definition exploded-graph.h:969
void dump(const extrinsic_state *ext_state=nullptr) const
unsigned length() const
Definition exploded-graph.h:972
exploded_node * get_final_enode() const
void dump(FILE *fp, const extrinsic_state *ext_state) 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:989
exploded_path(const exploded_path &other)
Definition program-state.h:36
const exploded_edge & m_eedge
Definition exploded-graph.h:1008
void dump_to_pp(pretty_printer *pp) const
const gimple * m_last_stmt
Definition exploded-graph.h:1009
unsigned m_eedge_idx
Definition exploded-graph.h:1007
feasibility_problem(unsigned eedge_idx, const exploded_edge &eedge, const gimple *last_stmt, std::unique_ptr< rejected_constraint > rc)
Definition exploded-graph.h:997
std::unique_ptr< rejected_constraint > m_rc
Definition exploded-graph.h:1010
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:1040
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:1039
const region_model & get_model() const
Definition exploded-graph.h:1033
feasibility_state & operator=(const feasibility_state &other)
const auto_sbitmap & get_snodes_visited() const
Definition exploded-graph.h:1034
void update_for_stmt(const gimple *stmt)
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:121
const extrinsic_state & m_ext_state
Definition exploded-graph.h:128
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 warn(std::unique_ptr< pending_diagnostic > d, const stmt_finder *custom_finder=nullptr) final override
bool * m_out_could_have_done_work
Definition exploded-graph.h:131
void on_state_leak(const state_machine &sm, const svalue *sval, state_machine::state_t state)
void maybe_did_work() override
impl_region_model_context(program_state *state, const extrinsic_state &ext_state, uncertainty_t *uncertainty, logger *logger=nullptr)
void add_event(std::unique_ptr< checker_event > event) final override
program_state * m_new_state
Definition exploded-graph.h:125
log_user m_logger
Definition exploded-graph.h:122
const program_state * m_old_state
Definition exploded-graph.h:124
void on_unusable_in_infinite_loop() override
Definition exploded-graph.h:119
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=nullptr, bool *out_could_have_done_work=nullptr)
const program_state * get_state() const override
Definition exploded-graph.h:115
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:127
path_context * m_path_ctxt
Definition exploded-graph.h:130
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
const gimple * m_stmt
Definition exploded-graph.h:126
uncertainty_t * m_uncertainty
Definition exploded-graph.h:129
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:118
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
exploded_node * m_enode_for_diag
Definition exploded-graph.h:123
Definition analyzer-logging.h:148
Definition analyzer-logging.h:34
Definition pending-diagnostic.h:190
Definition pending-diagnostic.h:436
Definition exploded-graph.h:139
hashval_t m_hash
Definition exploded-graph.h:175
bool operator==(const point_and_state &other) const
Definition exploded-graph.h:156
void validate(const extrinsic_state &ext_state) const
const program_state & get_state() const
Definition exploded-graph.h:162
program_state m_state
Definition exploded-graph.h:174
program_point m_point
Definition exploded-graph.h:173
point_and_state(const program_point &point, const program_state &state)
Definition exploded-graph.h:141
const program_point & get_point() const
Definition exploded-graph.h:161
hashval_t hash() const
Definition exploded-graph.h:152
void set_state(const program_state &state)
Definition exploded-graph.h:164
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:226
Definition region-model.h:815
Definition region-model-manager.h:32
Definition region-model.h:298
setjmp_record m_setjmp_record
Definition exploded-graph.h:520
const program_point & get_setjmp_point() const
Definition exploded-graph.h:492
bool update_model(region_model *model, const exploded_edge *eedge, region_model_context *ctxt) const final override
const gcall & get_setjmp_call() const
Definition exploded-graph.h:504
void print(pretty_printer *pp) const final override
Definition exploded-graph.h:480
const exploded_node * get_enode_origin() const
Definition exploded-graph.h:514
const gcall & m_longjmp_call
Definition exploded-graph.h:521
void add_events_to_path(checker_path *emission_path, const exploded_edge &eedge) const final override
rewind_info_t(const setjmp_record &setjmp_record, const gcall &longjmp_call)
Definition exploded-graph.h:474
const gcall & get_longjmp_call() const
Definition exploded-graph.h:509
Definition diagnostic-manager.h:31
Definition program-state.h:94
const state_machine::state * state_t
Definition sm.h:61
Definition state-purge.h:78
Definition exploded-graph.h:1053
virtual void update_event_loc_info(event_loc_info &)=0
virtual ~stmt_finder()
Definition exploded-graph.h:1055
virtual const gimple * find_stmt(const exploded_path &epath)=0
virtual std::unique_ptr< stmt_finder > clone() const =0
Definition exploded-graph.h:695
void strong_connect(unsigned index)
int get_scc_id(int node_index) const
Definition exploded-graph.h:699
auto_vec< per_node_data > m_per_node
Definition exploded-graph.h:724
const supergraph & m_sg
Definition exploded-graph.h:722
strongly_connected_components(const supergraph &sg, logger *logger)
auto_vec< unsigned > m_stack
Definition exploded-graph.h:723
std::unique_ptr< json::array > to_json() const
Definition supergraph.h:318
Definition supergraph.h:113
Definition supergraph.h:239
const int m_index
Definition supergraph.h:311
bool operator<(const key_t &other) const
Definition exploded-graph.h:760
const worklist & m_worklist
Definition exploded-graph.h:786
bool operator==(const key_t &other) const
Definition exploded-graph.h:765
exploded_node * m_enode
Definition exploded-graph.h:787
bool operator>(const key_t &other) const
Definition exploded-graph.h:770
static int cmp(const key_t &ka, const key_t &kb)
int get_scc_id(const exploded_node *enode) const
Definition exploded-graph.h:778
key_t(const worklist &w, exploded_node *enode)
Definition exploded-graph.h:756
Definition exploded-graph.h:738
std::unique_ptr< json::object > to_json() const
void add_node(exploded_node *enode)
strongly_connected_components m_scc
Definition exploded-graph.h:793
worklist(const exploded_graph &eg, const analysis_plan &plan)
queue_t m_queue
Definition exploded-graph.h:798
exploded_node * take_next()
fibonacci_heap< key_t, exploded_node > queue_t
Definition exploded-graph.h:797
exploded_node * peek_next()
const analysis_plan & m_plan
Definition exploded-graph.h:794
int get_scc_id(const supernode &snode) const
Definition exploded-graph.h:745
dedge(node_t *src, node_t *dest)
Definition digraph.h:64
eg_traits::dump_args_t dump_args_t
Definition digraph.h:62
digraph()
Definition digraph.h:88
eg_traits::dump_args_t dump_args_t
Definition digraph.h:46
Definition dumpfile.h:446
Definition fibonacci_heap.h:143
Definition graphviz.h:375
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:2008
tree_code
Definition genmatch.cc:1002
Definition access-diagram.h:30
@ stmt
Definition checker-event.h:37
@ custom
Definition checker-event.h:36
shortest_paths< eg_traits, exploded_path > shortest_exploded_paths
Definition exploded-graph.h:1045
@ NUM_POINT_KINDS
Definition program-point.h:45
@ PK_BEFORE_STMT
Definition program-point.h:38
hash_set< const svalue * > svalue_set
Definition common.h:80
void pp_string(pretty_printer *pp, const char *str)
Definition pretty-print.cc:2650
Definition constraint-manager.h:123
Definition exploded-graph.h:544
static bool equal_keys(const key_type &k1, const key_type &k2)
Definition exploded-graph.h:555
static void mark_empty(T &entry)
Definition exploded-graph.h:578
static void mark_deleted(T &entry)
Definition exploded-graph.h:573
static bool is_deleted(const T &entry)
Definition exploded-graph.h:583
static const bool empty_zero_p
Definition exploded-graph.h:592
exploded_node * compare_type
Definition exploded-graph.h:547
const point_and_state * key_type
Definition exploded-graph.h:545
exploded_node * value_type
Definition exploded-graph.h:546
static void remove(T &)
Definition exploded-graph.h:568
static hashval_t hash(const key_type &k)
Definition exploded-graph.h:549
static bool is_empty(const T &entry)
Definition exploded-graph.h:588
Definition exploded-graph.h:614
static bool is_deleted(const T &entry)
Definition exploded-graph.h:653
static const bool empty_zero_p
Definition exploded-graph.h:662
static void mark_empty(T &entry)
Definition exploded-graph.h:648
static hashval_t hash(const key_type &k)
Definition exploded-graph.h:619
const program_point * key_type
Definition exploded-graph.h:615
per_program_point_data * value_type
Definition exploded-graph.h:616
per_program_point_data * compare_type
Definition exploded-graph.h:617
static void mark_deleted(T &entry)
Definition exploded-graph.h:643
static bool is_empty(const T &entry)
Definition exploded-graph.h:658
static bool equal_keys(const key_type &k1, const key_type &k2)
Definition exploded-graph.h:625
static void remove(T &)
Definition exploded-graph.h:638
bool show_enode_details_p(const exploded_node &enode) const
const exploded_graph & m_eg
Definition exploded-graph.h:194
virtual void dump_extra_info(const exploded_node *, pretty_printer *) const
Definition exploded-graph.h:192
dump_args_t(const exploded_graph &eg)
Definition exploded-graph.h:187
Definition exploded-graph.h:181
exploded_graph graph_t
Definition exploded-graph.h:184
exploded_edge edge_t
Definition exploded-graph.h:183
exploded_node node_t
Definition exploded-graph.h:182
exploded_cluster cluster_t
Definition exploded-graph.h:196
Definition event-loc-info.h:29
Definition exploded-graph.h:252
static on_stmt_flags terminate_path()
Definition exploded-graph.h:256
on_stmt_flags()
Definition exploded-graph.h:253
bool m_terminate_path
Definition exploded-graph.h:263
on_stmt_flags(bool terminate_path)
Definition exploded-graph.h:266
Definition exploded-graph.h:668
stats m_stats
Definition exploded-graph.h:674
const call_string & m_key
Definition exploded-graph.h:673
per_call_string_data(const call_string &key, int num_supernodes)
Definition exploded-graph.h:669
Definition exploded-graph.h:680
per_function_data()
Definition exploded-graph.h:681
auto_vec< call_summary * > m_summaries
Definition exploded-graph.h:686
void add_call_summary(exploded_node *node)
Definition exploded-graph.h:598
const program_point m_key
Definition exploded-graph.h:603
int m_excess_enodes
Definition exploded-graph.h:607
per_program_point_data(const program_point &key)
Definition exploded-graph.h:599
auto_vec< exploded_node * > m_enodes
Definition exploded-graph.h:604
Definition exploded-graph.h:527
void log(logger *logger) const
void dump(FILE *out) const
int m_num_supernodes
Definition exploded-graph.h:537
int m_node_reuse_after_merge_count
Definition exploded-graph.h:536
stats(int num_supernodes)
int get_total_enodes() const
int m_num_nodes[NUM_POINT_KINDS]
Definition exploded-graph.h:534
int m_node_reuse_count
Definition exploded-graph.h:535
per_node_data()
Definition exploded-graph.h:711
bool m_on_stack
Definition exploded-graph.h:717
int m_index
Definition exploded-graph.h:715
int m_lowlink
Definition exploded-graph.h:716
Definition function.h:249
Definition ira-emit.cc:158
Definition gengtype.h:377
Definition genautomata.cc:669
#define gcc_assert(EXPR)
Definition system.h:814
#define false
Definition system.h:888
static void add_to_worklist(same_succ *same)
Definition tree-ssa-tail-merge.cc:714