GCC Middle and Back End API Reference
ana::strongly_connected_components Class Reference

#include <exploded-graph.h>

Collaboration diagram for ana::strongly_connected_components:

Data Structures

struct  per_node_data
 

Public Member Functions

 strongly_connected_components (const supergraph &sg, logger *logger)
 
int get_scc_id (int node_index) const
 
void dump () const
 
json::arrayto_json () const
 

Private Member Functions

void strong_connect (unsigned index)
 

Private Attributes

const supergraphm_sg
 
auto_vec< unsignedm_stack
 
auto_vec< per_node_datam_per_node
 

Detailed Description

The strongly connected components of a supergraph.
In particular, this allows us to compute a partial ordering
of supernodes.   

Constructor & Destructor Documentation

◆ strongly_connected_components()

ana::strongly_connected_components::strongly_connected_components ( const supergraph & sg,
logger * logger )

Member Function Documentation

◆ dump()

void ana::strongly_connected_components::dump ( ) const

◆ get_scc_id()

int ana::strongly_connected_components::get_scc_id ( int node_index) const
inline

◆ strong_connect()

void ana::strongly_connected_components::strong_connect ( unsigned index)
private

◆ to_json()

json::array * ana::strongly_connected_components::to_json ( ) const

Field Documentation

◆ m_per_node

auto_vec<per_node_data> ana::strongly_connected_components::m_per_node
private

Referenced by get_scc_id().

◆ m_sg

const supergraph& ana::strongly_connected_components::m_sg
private

◆ m_stack

auto_vec<unsigned> ana::strongly_connected_components::m_stack
private

The documentation for this class was generated from the following file: