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;
236 const final override;
274 bool *out_could_have_done_work,
279 bool *out_terminate_path,
280 bool *out_unknown_side_effects,
284 bool unknown_side_effects,
289 const gcall &call_stmt,
297 const gcall &call_stmt,
397 const superedge *sedge,
bool could_do_work,
398 std::unique_ptr<custom_edge_info> custom_info);
400 const final override;
403 std::unique_ptr<json::object>
to_json ()
const;
441 const bool is_returning_call =
false)
473 const gcall &longjmp_call)
565 template <
typename T>
570 template <
typename T>
573 entry.m_key =
reinterpret_cast<key_type> (1);
575 template <
typename T>
580 template <
typename T>
583 return entry.m_key ==
reinterpret_cast<key_type> (1);
585 template <
typename T>
588 return entry.m_key ==
NULL;
635 template <
typename T>
640 template <
typename T>
643 entry.m_key =
reinterpret_cast<key_type> (1);
645 template <
typename T>
650 template <
typename T>
653 return entry.m_key ==
reinterpret_cast<key_type> (1);
655 template <
typename T>
658 return entry.m_key ==
NULL;
704 std::unique_ptr<json::array>
to_json ()
const;
748 std::unique_ptr<json::object>
to_json ()
const;
760 return cmp (*
this, other) < 0;
765 return cmp (*
this, other) == 0;
770 return !(*
this == other || *
this < other);
846 const superedge *sedge,
bool could_do_work,
847 std::unique_ptr<custom_edge_info>
custom =
NULL);
884 std::unique_ptr<json::object>
to_json ()
const;
998 std::unique_ptr<rejected_constraint> rc)
1008 std::unique_ptr<rejected_constraint>
m_rc;
1028 std::unique_ptr<rejected_constraint> *out_rc);
1054 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-path.h:32
Definition diagnostic-manager.h:154
void print(pretty_printer *pp) const final override
Definition exploded-graph.h:446
const bool m_is_returning_call
Definition exploded-graph.h:462
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:440
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:461
Definition region-model.h:1338
Definition exploded-graph.h:394
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:431
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:411
void dump_dot(graphviz_out *gv, const dump_args_t &args) const final override
bool could_do_work_p() const
Definition exploded-graph.h:413
DISABLE_COPY_AND_ASSIGN(exploded_edge)
const superedge *const m_sedge
Definition exploded-graph.h:406
Definition exploded-graph.h:804
hash_map< const point_and_state *, exploded_node *, eg_hash_map_traits > map_t
Definition exploded-graph.h:924
stats * get_global_stats()
Definition exploded-graph.h:877
const call_string_data_map_t * get_per_call_string_data() const
Definition exploded-graph.h:888
const state_purge_map * get_purge_map() const
Definition exploded-graph.h:821
const extrinsic_state & m_ext_state
Definition exploded-graph.h:936
void detect_infinite_recursion(exploded_node *enode)
Definition infinite-recursion.cc:582
call_string_data_map_t m_per_call_string_data
Definition exploded-graph.h:953
stats m_functionless_stats
Definition exploded-graph.h:951
exploded_node * find_previous_entry_to(function *top_of_stack_fun, exploded_node *enode) const
Definition infinite-recursion.cc:325
auto_vec< int > m_PK_AFTER_SUPERNODE_per_snode
Definition exploded-graph.h:955
function_stat_map_t m_per_function_stats
Definition exploded-graph.h:950
void detect_infinite_loops()
Definition infinite-loop.cc:535
void process_node(exploded_node *node)
engine * get_engine() const
Definition exploded-graph.h:820
point_map_t m_per_point_data
Definition exploded-graph.h:930
diagnostic_manager & get_diagnostic_manager()
Definition exploded-graph.h:868
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:917
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:818
const analysis_plan & get_analysis_plan() const
Definition exploded-graph.h:822
map_t m_point_and_state_to_node
Definition exploded-graph.h:925
const supergraph & m_sg
Definition exploded-graph.h:915
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:945
hash_map< function *, per_function_data * > per_function_data_t
Definition exploded-graph.h:942
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:872
per_program_point_data * get_per_program_point_data(const program_point &) const
logger * get_logger() const
Definition exploded-graph.h:816
exploded_node * m_origin
Definition exploded-graph.h:934
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:807
hash_set< function * > m_functions_with_enodes
Definition exploded-graph.h:959
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:948
ordered_hash_map< function *, stats * > function_stat_map_t
Definition exploded-graph.h:949
const extrinsic_state & get_ext_state() const
Definition exploded-graph.h:819
worklist m_worklist
Definition exploded-graph.h:932
void dump_stats(FILE *) const
int get_scc_id(const supernode &node) const
Definition exploded-graph.h:891
hash_map< const program_point *, per_program_point_data *, eg_point_hash_map_traits > point_map_t
Definition exploded-graph.h:929
std::unique_ptr< json::object > to_json() const
const state_purge_map *const m_purge_map
Definition exploded-graph.h:938
const analysis_plan & m_plan
Definition exploded-graph.h:940
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:943
exploded_node * get_origin() const
Definition exploded-graph.h:824
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:203
DISABLE_COPY_AND_ASSIGN(exploded_node)
const point_and_state * get_ps_key() const
Definition exploded-graph.h:343
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:387
status
Definition exploded-graph.h:210
@ special
Definition exploded-graph.h:219
@ bulk_merged
Definition exploded-graph.h:226
@ worklist
Definition exploded-graph.h:212
@ merger
Definition exploded-graph.h:223
@ processed
Definition exploded-graph.h:215
function * get_function() const
Definition exploded-graph.h:330
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:359
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:338
void add_diagnostic(const saved_diagnostic *sd)
Definition exploded-graph.h:355
void dump_processed_stmts(pretty_printer *pp) const
const point_and_state m_ps
Definition exploded-graph.h:373
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:341
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:383
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:344
enum status get_status() const
Definition exploded-graph.h:348
void set_status(enum status s)
Definition exploded-graph.h:349
int get_stack_depth() const
Definition exploded-graph.h:334
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:325
void dump(FILE *fp, const extrinsic_state &ext_state) const
auto_vec< const saved_diagnostic * > m_saved_diagnostics
Definition exploded-graph.h:379
const supernode * get_supernode() const
Definition exploded-graph.h:326
void detect_leaks(exploded_graph &eg)
hashval_t hash() const
Definition exploded-graph.h:232
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:375
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:363
Definition exploded-graph.h:965
exploded_path()
Definition exploded-graph.h:967
unsigned length() const
Definition exploded-graph.h:970
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:987
exploded_path(const exploded_path &other)
Definition program-state.h:31
const exploded_edge & m_eedge
Definition exploded-graph.h:1006
void dump_to_pp(pretty_printer *pp) const
const gimple * m_last_stmt
Definition exploded-graph.h:1007
unsigned m_eedge_idx
Definition exploded-graph.h:1005
feasibility_problem(unsigned eedge_idx, const exploded_edge &eedge, const gimple *last_stmt, std::unique_ptr< rejected_constraint > rc)
Definition exploded-graph.h:995
std::unique_ptr< rejected_constraint > m_rc
Definition exploded-graph.h:1008
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:1038
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:1037
const region_model & get_model() const
Definition exploded-graph.h:1031
feasibility_state & operator=(const feasibility_state &other)
const auto_sbitmap & get_snodes_visited() const
Definition exploded-graph.h:1032
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: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
Definition analyzer-logging.h:34
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:221
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:518
const program_point & get_setjmp_point() const
Definition exploded-graph.h:490
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:502
void print(pretty_printer *pp) const final override
Definition exploded-graph.h:478
const exploded_node * get_enode_origin() const
Definition exploded-graph.h:512
const gcall & m_longjmp_call
Definition exploded-graph.h:519
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:472
const gcall & get_longjmp_call() const
Definition exploded-graph.h:507
Definition diagnostic-manager.h:31
Definition program-state.h:89
const state_machine::state * state_t
Definition sm.h:60
Definition state-purge.h:78
Definition exploded-graph.h:1051
virtual void update_event_loc_info(event_loc_info &)=0
virtual ~stmt_finder()
Definition exploded-graph.h:1053
virtual const gimple * find_stmt(const exploded_path &epath)=0
virtual std::unique_ptr< stmt_finder > clone() const =0
Definition exploded-graph.h:693
void strong_connect(unsigned index)
int get_scc_id(int node_index) const
Definition exploded-graph.h:697
auto_vec< per_node_data > m_per_node
Definition exploded-graph.h:722
const supergraph & m_sg
Definition exploded-graph.h:720
strongly_connected_components(const supergraph &sg, logger *logger)
auto_vec< unsigned > m_stack
Definition exploded-graph.h:721
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:758
const worklist & m_worklist
Definition exploded-graph.h:784
bool operator==(const key_t &other) const
Definition exploded-graph.h:763
exploded_node * m_enode
Definition exploded-graph.h:785
bool operator>(const key_t &other) const
Definition exploded-graph.h:768
static int cmp(const key_t &ka, const key_t &kb)
int get_scc_id(const exploded_node *enode) const
Definition exploded-graph.h:776
key_t(const worklist &w, exploded_node *enode)
Definition exploded-graph.h:754
Definition exploded-graph.h:736
std::unique_ptr< json::object > to_json() const
void add_node(exploded_node *enode)
strongly_connected_components m_scc
Definition exploded-graph.h:791
worklist(const exploded_graph &eg, const analysis_plan &plan)
queue_t m_queue
Definition exploded-graph.h:796
exploded_node * take_next()
fibonacci_heap< key_t, exploded_node > queue_t
Definition exploded-graph.h:795
exploded_node * peek_next()
const analysis_plan & m_plan
Definition exploded-graph.h:792
int get_scc_id(const supernode &snode) const
Definition exploded-graph.h:743
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 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:1043
@ 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:78
void pp_string(pretty_printer *pp, const char *str)
Definition pretty-print.cc:2652
Definition constraint-manager.h:123
Definition exploded-graph.h:542
static bool equal_keys(const key_type &k1, const key_type &k2)
Definition exploded-graph.h:553
static void mark_empty(T &entry)
Definition exploded-graph.h:576
static void mark_deleted(T &entry)
Definition exploded-graph.h:571
static bool is_deleted(const T &entry)
Definition exploded-graph.h:581
static const bool empty_zero_p
Definition exploded-graph.h:590
exploded_node * compare_type
Definition exploded-graph.h:545
const point_and_state * key_type
Definition exploded-graph.h:543
exploded_node * value_type
Definition exploded-graph.h:544
static void remove(T &)
Definition exploded-graph.h:566
static hashval_t hash(const key_type &k)
Definition exploded-graph.h:547
static bool is_empty(const T &entry)
Definition exploded-graph.h:586
Definition exploded-graph.h:612
static bool is_deleted(const T &entry)
Definition exploded-graph.h:651
static const bool empty_zero_p
Definition exploded-graph.h:660
static void mark_empty(T &entry)
Definition exploded-graph.h:646
static hashval_t hash(const key_type &k)
Definition exploded-graph.h:617
const program_point * key_type
Definition exploded-graph.h:613
per_program_point_data * value_type
Definition exploded-graph.h:614
per_program_point_data * compare_type
Definition exploded-graph.h:615
static void mark_deleted(T &entry)
Definition exploded-graph.h:641
static bool is_empty(const T &entry)
Definition exploded-graph.h:656
static bool equal_keys(const key_type &k1, const key_type &k2)
Definition exploded-graph.h:623
static void remove(T &)
Definition exploded-graph.h:636
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_graph graph_t
Definition exploded-graph.h:182
exploded_edge edge_t
Definition exploded-graph.h:181
exploded_node node_t
Definition exploded-graph.h:180
exploded_cluster cluster_t
Definition exploded-graph.h:194
Definition event-loc-info.h:29
Definition exploded-graph.h:250
static on_stmt_flags terminate_path()
Definition exploded-graph.h:254
on_stmt_flags()
Definition exploded-graph.h:251
bool m_terminate_path
Definition exploded-graph.h:261
on_stmt_flags(bool terminate_path)
Definition exploded-graph.h:264
Definition exploded-graph.h:666
stats m_stats
Definition exploded-graph.h:672
const call_string & m_key
Definition exploded-graph.h:671
per_call_string_data(const call_string &key, int num_supernodes)
Definition exploded-graph.h:667
Definition exploded-graph.h:678
per_function_data()
Definition exploded-graph.h:679
auto_vec< call_summary * > m_summaries
Definition exploded-graph.h:684
void add_call_summary(exploded_node *node)
Definition exploded-graph.h:596
const program_point m_key
Definition exploded-graph.h:601
int m_excess_enodes
Definition exploded-graph.h:605
per_program_point_data(const program_point &key)
Definition exploded-graph.h:597
auto_vec< exploded_node * > m_enodes
Definition exploded-graph.h:602
Definition exploded-graph.h:525
void log(logger *logger) const
void dump(FILE *out) const
int m_num_supernodes
Definition exploded-graph.h:535
int m_node_reuse_after_merge_count
Definition exploded-graph.h:534
stats(int num_supernodes)
int get_total_enodes() const
int m_num_nodes[NUM_POINT_KINDS]
Definition exploded-graph.h:532
int m_node_reuse_count
Definition exploded-graph.h:533
per_node_data()
Definition exploded-graph.h:709
bool m_on_stack
Definition exploded-graph.h:715
int m_index
Definition exploded-graph.h:713
int m_lowlink
Definition exploded-graph.h:714
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
static void add_to_worklist(same_succ *same)
Definition tree-ssa-tail-merge.cc:714