|
GCC Middle and Back End API Reference
|
#include <exploded-graph.h>

Data Structures | |
| class | key_t |
Public Member Functions | |
| worklist (const exploded_graph &eg, const analysis_plan &plan) | |
| unsigned | length () const |
| exploded_node * | take_next () |
| exploded_node * | peek_next () |
| void | add_node (exploded_node *enode) |
| int | get_scc_id (const supernode &snode) const |
| std::unique_ptr< json::object > | to_json () const |
Private Types | |
| typedef fibonacci_heap< key_t, exploded_node > | queue_t |
Private Attributes | |
| strongly_connected_components | m_scc |
| const analysis_plan & | m_plan |
| queue_t | m_queue |
The worklist of exploded_node instances that have been added to an exploded_graph, but that haven't yet been processed to find their successors (or warnings). The enodes are stored in a priority queue, ordered by a topological sort of the SCCs in the supergraph, so that enodes for the same program_point should appear at the front of the queue together. This allows for state-merging at CFG join-points, so that sufficiently-similar enodes can be merged into one.
|
private |
| ana::worklist::worklist | ( | const exploded_graph & | eg, |
| const analysis_plan & | plan ) |
Referenced by ana::worklist::key_t::key_t().
| void ana::worklist::add_node | ( | exploded_node * | enode | ) |
|
inline |
References ana::supernode::m_index, and m_scc.
| unsigned ana::worklist::length | ( | ) | const |
| exploded_node * ana::worklist::peek_next | ( | ) |
| exploded_node * ana::worklist::take_next | ( | ) |
| std::unique_ptr< json::object > ana::worklist::to_json | ( | ) | const |
|
private |
|
private |
|
private |
Referenced by get_scc_id().