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 |
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.
ana::worklist::worklist | ( | const exploded_graph & | eg, |
const analysis_plan & | plan ) |
void ana::worklist::add_node | ( | exploded_node * | enode | ) |
|
inline |
References ana::strongly_connected_components::get_scc_id(), ana::supernode::m_index, and m_scc.
Referenced by ana::exploded_graph::get_scc_id().
unsigned ana::worklist::length | ( | ) | const |
exploded_node * ana::worklist::peek_next | ( | ) |
exploded_node * ana::worklist::take_next | ( | ) |
json::object * ana::worklist::to_json | ( | ) | const |
|
private |
|
private |
|
private |
Referenced by get_scc_id(), and ana::worklist::key_t::get_scc_id().