Lines Matching defs:exploded_node
85 exploded_node *enode_for_diag,
283 /* Get the index of the stored exploded_node. */
300 exploded_node *enode_for_diag,
480 const_cast<exploded_node *> (m_enode_for_diag),
517 exploded_node *m_enode_for_diag;
572 const exploded_node *dst_node = eedge->m_dest;
599 const exploded_node *dst_node = eedge->m_dest;
991 const auto_vec<exploded_node *> &enodes)
997 exploded_node *enode;
1049 eg_traits::dump_args_t::show_enode_details_p (const exploded_node &enode) const
1066 /* class exploded_node : public dnode<eg_traits>. */
1069 exploded_node::status_to_str (enum status s)
1081 /* exploded_node's ctor. */
1083 exploded_node::exploded_node (const point_and_state &ps,
1096 exploded_node::get_processed_stmt (unsigned idx) const
1113 exploded_node::get_dot_fillcolor () const
1150 /* Implementation of dnode::dump_dot vfunc for exploded_node. */
1153 exploded_node::dump_dot (graphviz_out *gv, const dump_args_t &args) const
1217 exploded_node::dump_processed_stmts (pretty_printer *pp) const
1242 exploded_node::dump_saved_diagnostics (pretty_printer *pp) const
1257 exploded_node::dump_dot_id (pretty_printer *pp) const
1265 exploded_node::dump_to_pp (pretty_printer *pp,
1282 exploded_node::dump (FILE *fp,
1296 exploded_node::dump (const extrinsic_state &ext_state) const
1309 exploded_node::to_json (const extrinsic_state &ext_state) const
1346 exploded_node::on_stmt_flags
1347 exploded_node::on_stmt (exploded_graph &eg,
1419 exploded_node::on_stmt_pre (exploded_graph &eg,
1465 exploded_node::on_stmt_post (const gimple *stmt,
1491 exploded_node::on_edge (exploded_graph &eg,
1579 const exploded_node *src_node = eedge.m_src;
1581 const exploded_node *dst_node = eedge.m_dest;
1625 an exploded_node and exploded_edge to it representing a rewind to that frame,
1629 exploded_node::on_longjmp (exploded_graph &eg,
1689 exploded_node *next
1696 = eg.add_edge (const_cast<exploded_node *> (this), next, NULL,
1742 exploded_node::detect_leaks (exploded_graph &eg)
1777 exploded_node::dump_succs_and_preds (FILE *outf) const
1782 auto_vec<exploded_node *> preds (m_preds.length ());
1791 auto_vec<exploded_node *> succs (m_succs.length ());
1832 const exploded_node *src_node = eedge.m_src;
1835 const exploded_node *dest_node = eedge.m_dest;
1888 const exploded_node *src_node = eedge.m_src;
1891 const exploded_node *dst_node = eedge.m_dest;
1911 exploded_edge::exploded_edge (exploded_node *src, exploded_node *dest,
2191 exploded_node *
2199 exploded_node *
2208 worklist::add_node (exploded_node *enode)
2210 gcc_assert (enode->get_status () == exploded_node::STATUS_WORKLIST);
2490 /* Ensure that there is an exploded_node representing an external call to
2493 Add an edge from the origin exploded_node to the function entrypoint
2494 exploded_node.
2496 Return the exploded_node for the entrypoint to the function. */
2498 exploded_node *
2527 exploded_node *enode = get_or_create_node (point, state, NULL);
2541 /* Get or create an exploded_node for (POINT, STATE).
2548 exploded_node *
2551 exploded_node *enode_for_diag)
2612 if (exploded_node **slot = m_point_and_state_to_node.get (&ps))
2614 /* An exploded_node for PS already exists. */
2629 exploded_node *existing_enode;
2656 if (exploded_node **slot = m_point_and_state_to_node.get (&ps))
2658 /* An exploded_node for PS already exists. */
2694 /* An exploded_node for "ps" doesn't already exist; create one. */
2695 exploded_node *node = new exploded_node (ps, m_nodes.length ());
2736 exploded_graph::add_edge (exploded_node *src, exploded_node *dest,
2975 exploded_node *enode = eg->get_or_create_node (point, state, NULL);
3044 exploded_node *enode = add_function_entry (fun);
3082 exploded_node *node = m_worklist.take_next ();
3083 gcc_assert (node->get_status () == exploded_node::STATUS_WORKLIST);
3100 if (exploded_node *node_2 = m_worklist.peek_next ())
3103 == exploded_node::STATUS_WORKLIST);
3148 node_2->set_status (exploded_node::STATUS_MERGER);
3158 node->set_status (exploded_node::STATUS_MERGER);
3171 exploded_node *merged_enode
3203 node->set_status (exploded_node::STATUS_MERGER);
3211 node_2->set_status (exploded_node::STATUS_MERGER);
3284 maybe_process_run_of_before_supernode_enodes (exploded_node *enode)
3289 item (exploded_node *input_enode)
3295 exploded_node *m_input_enode;
3300 gcc_assert (enode->get_status () == exploded_node::STATUS_WORKLIST);
3315 auto_vec <exploded_node *> enodes;
3317 while (exploded_node *enode_2 = m_worklist.peek_next ())
3320 == exploded_node::STATUS_WORKLIST);
3351 exploded_node *iter_enode;
3420 auto_vec<exploded_node *> next_enodes (merged_states.length ());
3424 exploded_node *src_enode
3426 exploded_node *next
3443 exploded_node *next = next_enodes[it->m_merger_idx];
3446 it->m_input_enode->set_status (exploded_node::STATUS_BULK_MERGED);
3468 start of an exploded_node. */
3485 no location. Ensure that STMT gets its own exploded_node to
3536 exploded_node *node,
3583 exploded_node *enode = get_or_create_node (new_point,
3670 exploded_graph::process_node (exploded_node *node)
3675 node->set_status (exploded_node::STATUS_PROCESSED);
3704 to an exploded_node. */
3729 exploded_node *next = get_or_create_node (next_point, next_state, node);
3744 exploded_node)
3780 exploded_node::on_stmt_flags flags
3830 exploded_node *split_enode
3863 exploded_node *next
3899 exploded_node *next2
4005 exploded_node *next
4022 exploded_node *next = get_or_create_node (next_point, next_state,
4051 exploded_node *enode = get_or_create_node (next_point,
4116 exploded_node *enode;
4246 exploded_node *enode;
4262 fprintf (out, "#exploded_node for PK_AFTER_SUPERNODE for SN: %i = %i\n",
4281 exploded_node *n;
4340 const exploded_node *dst_node = eedge->m_dest;
4352 /* Get the final exploded_node in this path, which must be non-empty. */
4354 exploded_node *
4390 const exploded_node &src_enode = *eedge->m_src;
4528 const exploded_node &src_enode = *eedge->m_src;
4615 const exploded_node &dst_enode = *eedge->m_dest;
4660 /* Base class of cluster for clustering exploded_node instances in .dot
4667 /* Cluster containing all exploded_node instances for one supernode. */
4686 exploded_node *enode;
4695 void add_node (exploded_node *en) FINAL OVERRIDE
4713 auto_vec <exploded_node *> m_enodes;
4765 void add_node (exploded_node *en) FINAL OVERRIDE
4883 exploded_node *enode;
4901 void add_node (exploded_node *en) FINAL OVERRIDE
4933 /* This should just be the origin exploded_node. */
4934 auto_vec <exploded_node *> m_functionless_enodes;
4940 exploded_node. */
4946 exploded_node *enode)
4960 exploded_node *m_enode;
4991 exploded_node *enode;
5032 exploded_node *enode;
5052 exploded_node *enode;
5086 exploded_node *enode;
5101 auto_vec<exploded_node *> processed_enodes;
5102 auto_vec<exploded_node *> merger_enodes;
5103 auto_vec<exploded_node *> worklist_enodes;
5106 exploded_node *other_enode;
5116 case exploded_node::STATUS_WORKLIST:
5119 case exploded_node::STATUS_PROCESSED:
5122 case exploded_node::STATUS_MERGER:
5161 exploded_node *other_enode;
5176 DEBUG_FUNCTION exploded_node *
5179 exploded_node *enode = m_nodes[idx];
5184 /* Ensure that there is an exploded_node for a top-level call to FNDECL. */
5203 exploded_node *enode = add_function_entry (fun);
5279 exploded_node *enode;
5489 m_enodes_per_snodes.safe_push (new auto_vec <exploded_node *> ());
5490 exploded_node *enode;
5512 exploded_node *enode;
5542 exploded_node *enode;
5574 exploded_node *enode;
5597 void print_enode (graphviz_out *gv, const exploded_node *enode) const
5609 case exploded_node::STATUS_WORKLIST:
5612 case exploded_node::STATUS_PROCESSED:
5614 case exploded_node::STATUS_MERGER:
5617 case exploded_node::STATUS_BULK_MERGED:
5677 auto_delete_vec<auto_vec <exploded_node *> > m_enodes_per_snodes;