GCC Middle and Back End API Reference
ana::superedge Class Referenceabstract

#include <supergraph.h>

Inheritance diagram for ana::superedge:
Collaboration diagram for ana::superedge:

Public Types

typedef supergraph_traits::node_t node_t
typedef supergraph_traits::edge_t edge_t
typedef supergraph_traits::dump_args_t dump_args_t

Public Member Functions

 superedge (supernode *src, supernode *dest, std::unique_ptr< operation > op, ::edge cfg_edge)
virtual ~superedge ()
void dump (pretty_printer *pp) const
void dump () const
void dump_dot (graphviz_out *gv, const dump_args_t &args) const final override
const operationget_op () const
void set_op (std::unique_ptr< operation > op)
void dump_label_to_pp (pretty_printer *pp, bool user_facing) const
std::unique_ptr< json::objectto_json () const
const supernodeget_dest_snode () const
::edge get_any_cfg_edge () const
bool preserve_p () const
label_text get_description (bool user_facing) const
bool supports_bulk_merge_p () const
virtual void dump_dot (graphviz_out *gv, const dump_args_t &args) const=0
void set_dest (node_t *new_dest)

Data Fields

node_tm_src
node_tm_dest

Private Attributes

std::unique_ptr< operationm_op
::edge m_cfg_edge

Detailed Description

An edge within the supergraph, with an optional operation.
Edges can be CFG edges or edges between statements, or persist
in order to give more opportunities for state-merging when
building the exploded graph.   

Member Typedef Documentation

◆ dump_args_t

typedef supergraph_traits::dump_args_t dedge< supergraph_traits >::dump_args_t
inherited

◆ edge_t

typedef supergraph_traits::edge_t dedge< supergraph_traits >::edge_t
inherited

◆ node_t

typedef supergraph_traits::node_t dedge< supergraph_traits >::node_t
inherited

Constructor & Destructor Documentation

◆ superedge()

ana::superedge::superedge ( supernode * src,
supernode * dest,
std::unique_ptr< operation > op,
::edge cfg_edge )
inline

◆ ~superedge()

virtual ana::superedge::~superedge ( )
inlinevirtual

Member Function Documentation

◆ dump() [1/2]

void ana::superedge::dump ( ) const

◆ dump() [2/2]

void ana::superedge::dump ( pretty_printer * pp) const

◆ dump_dot() [1/2]

void ana::superedge::dump_dot ( graphviz_out * gv,
const dump_args_t & args ) const
finaloverride

◆ dump_dot() [2/2]

virtual void dedge< supergraph_traits >::dump_dot ( graphviz_out * gv,
const dump_args_t & args ) const
pure virtualinherited

◆ dump_label_to_pp()

void ana::superedge::dump_label_to_pp ( pretty_printer * pp,
bool user_facing ) const

◆ get_any_cfg_edge()

::edge ana::superedge::get_any_cfg_edge ( ) const
inline

◆ get_description()

label_text ana::superedge::get_description ( bool user_facing) const

◆ get_dest_snode()

const supernode * ana::superedge::get_dest_snode ( ) const
inline

◆ get_op()

const operation * ana::superedge::get_op ( ) const
inline

◆ preserve_p()

bool ana::superedge::preserve_p ( ) const

◆ set_dest()

void dedge< supergraph_traits >::set_dest ( node_t * new_dest)
inlineinherited

◆ set_op()

void ana::superedge::set_op ( std::unique_ptr< operation > op)
inline

References m_op.

◆ supports_bulk_merge_p()

bool ana::superedge::supports_bulk_merge_p ( ) const

◆ to_json()

std::unique_ptr< json::object > ana::superedge::to_json ( ) const

Field Documentation

◆ m_cfg_edge

::edge ana::superedge::m_cfg_edge
private

Referenced by get_any_cfg_edge(), and superedge().

◆ m_dest

◆ m_op

std::unique_ptr<operation> ana::superedge::m_op
private

Referenced by get_op(), set_op(), and superedge().

◆ m_src

node_t* dedge< supergraph_traits >::m_src
inherited

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