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 GraphTraits::node_t node_t
 
typedef GraphTraits::dump_args_t dump_args_t
 

Public Member Functions

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
 
virtual void dump_label_to_pp (pretty_printer *pp, bool user_facing) const =0
 
json::objectto_json () const
 
enum edge_kind get_kind () const
 
virtual cfg_superedgedyn_cast_cfg_superedge ()
 
virtual const cfg_superedgedyn_cast_cfg_superedge () const
 
virtual const switch_cfg_superedgedyn_cast_switch_cfg_superedge () const
 
virtual callgraph_superedgedyn_cast_callgraph_superedge ()
 
virtual const callgraph_superedgedyn_cast_callgraph_superedge () const
 
virtual call_superedgedyn_cast_call_superedge ()
 
virtual const call_superedgedyn_cast_call_superedge () const
 
virtual return_superedgedyn_cast_return_superedge ()
 
virtual const return_superedgedyn_cast_return_superedge () const
 
::edge get_any_cfg_edge () const
 
cgraph_edgeget_any_callgraph_edge () const
 
label_text get_description (bool user_facing) const
 

Data Fields

enum edge_kind m_kind
 
node_t *const m_src
 
node_t *const m_dest
 

Protected Member Functions

 superedge (supernode *src, supernode *dest, enum edge_kind kind)
 

Detailed Description

An abstract base class encapsulating an edge within a supergraph.
Edges can be CFG edges, or calls/returns for callgraph edges.   

Member Typedef Documentation

◆ dump_args_t

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

◆ node_t

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

Constructor & Destructor Documentation

◆ ~superedge()

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

◆ superedge()

ana::superedge::superedge ( supernode * src,
supernode * dest,
enum edge_kind kind )
inlineprotected

Member Function Documentation

◆ dump() [1/2]

void ana::superedge::dump ( ) const

◆ dump() [2/2]

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

◆ dump_dot()

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

◆ dump_label_to_pp()

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

◆ dyn_cast_call_superedge() [1/2]

virtual call_superedge * ana::superedge::dyn_cast_call_superedge ( )
inlinevirtual

Reimplemented in ana::call_superedge.

References NULL.

◆ dyn_cast_call_superedge() [2/2]

virtual const call_superedge * ana::superedge::dyn_cast_call_superedge ( ) const
inlinevirtual

Reimplemented in ana::call_superedge.

References NULL.

◆ dyn_cast_callgraph_superedge() [1/2]

virtual callgraph_superedge * ana::superedge::dyn_cast_callgraph_superedge ( )
inlinevirtual

Reimplemented in ana::callgraph_superedge.

References NULL.

◆ dyn_cast_callgraph_superedge() [2/2]

virtual const callgraph_superedge * ana::superedge::dyn_cast_callgraph_superedge ( ) const
inlinevirtual

Reimplemented in ana::callgraph_superedge.

References NULL.

◆ dyn_cast_cfg_superedge() [1/2]

virtual cfg_superedge * ana::superedge::dyn_cast_cfg_superedge ( )
inlinevirtual

Reimplemented in ana::cfg_superedge.

References NULL.

◆ dyn_cast_cfg_superedge() [2/2]

virtual const cfg_superedge * ana::superedge::dyn_cast_cfg_superedge ( ) const
inlinevirtual

Reimplemented in ana::cfg_superedge.

References NULL.

◆ dyn_cast_return_superedge() [1/2]

virtual return_superedge * ana::superedge::dyn_cast_return_superedge ( )
inlinevirtual

Reimplemented in ana::return_superedge.

References NULL.

◆ dyn_cast_return_superedge() [2/2]

virtual const return_superedge * ana::superedge::dyn_cast_return_superedge ( ) const
inlinevirtual

Reimplemented in ana::return_superedge.

References NULL.

◆ dyn_cast_switch_cfg_superedge()

virtual const switch_cfg_superedge * ana::superedge::dyn_cast_switch_cfg_superedge ( ) const
inlinevirtual

Reimplemented in ana::switch_cfg_superedge.

References NULL.

◆ get_any_callgraph_edge()

cgraph_edge * ana::superedge::get_any_callgraph_edge ( ) const

◆ get_any_cfg_edge()

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

◆ get_description()

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

◆ get_kind()

enum edge_kind ana::superedge::get_kind ( ) const
inline

References m_kind.

◆ to_json()

json::object * ana::superedge::to_json ( ) const

Field Documentation

◆ m_dest

node_t* const dedge< supergraph_traits >::m_dest
inherited

◆ m_kind

enum edge_kind ana::superedge::m_kind

Referenced by get_kind().

◆ m_src

node_t* const dedge< supergraph_traits >::m_src
inherited

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