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

#include <supergraph.h>

Inheritance diagram for ana::supernode:
Collaboration diagram for ana::supernode:

Public Types

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

Public Member Functions

 supernode (function *fun, basic_block bb, gcall *returning_call, gimple_seq phi_nodes, int index)
 
functionget_function () const
 
bool entry_p () const
 
bool return_p () const
 
void dump_dot (graphviz_out *gv, const dump_args_t &args) const override
 
void dump_dot_id (pretty_printer *pp) const
 
json::objectto_json () const
 
location_t get_start_location () const
 
location_t get_end_location () const
 
gphi_iterator start_phis ()
 
gcallget_returning_call () const
 
gimpleget_last_stmt () const
 
gcallget_final_call () const
 
unsigned int get_stmt_index (const gimple *stmt) const
 
tree get_label () const
 
virtual void dump_dot (graphviz_out *gv, const dump_args_t &args) const=0
 

Data Fields

function *const m_fun
 
const basic_block m_bb
 
gcall *const m_returning_call
 
gimple_seq m_phi_nodes
 
auto_vec< gimple * > m_stmts
 
const int m_index
 
auto_vec< edge_t * > m_preds
 
auto_vec< edge_t * > m_succs
 

Detailed Description

A node within a supergraph.   

Member Typedef Documentation

◆ dump_args_t

typedef supergraph_traits::dump_args_t dnode< supergraph_traits >::dump_args_t
inherited

◆ edge_t

typedef supergraph_traits::edge_t dnode< supergraph_traits >::edge_t
inherited

Constructor & Destructor Documentation

◆ supernode()

ana::supernode::supernode ( function * fun,
basic_block bb,
gcall * returning_call,
gimple_seq phi_nodes,
int index )
inline

Member Function Documentation

◆ dump_dot() [1/2]

void ana::supernode::dump_dot ( graphviz_out * gv,
const dump_args_t & args ) const
override

◆ dump_dot() [2/2]

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

◆ dump_dot_id()

void ana::supernode::dump_dot_id ( pretty_printer * pp) const

◆ entry_p()

bool ana::supernode::entry_p ( ) const
inline

References ENTRY_BLOCK_PTR_FOR_FN, m_bb, and m_fun.

Referenced by is_entrypoint_p().

◆ get_end_location()

location_t ana::supernode::get_end_location ( ) const

◆ get_final_call()

gcall * ana::supernode::get_final_call ( ) const
inline

References dyn_cast(), get_last_stmt(), and NULL.

◆ get_function()

function * ana::supernode::get_function ( ) const
inline

References m_fun.

◆ get_label()

tree ana::supernode::get_label ( ) const

◆ get_last_stmt()

◆ get_returning_call()

gcall * ana::supernode::get_returning_call ( ) const
inline

References m_returning_call.

◆ get_start_location()

location_t ana::supernode::get_start_location ( ) const

◆ get_stmt_index()

unsigned int ana::supernode::get_stmt_index ( const gimple * stmt) const

◆ return_p()

bool ana::supernode::return_p ( ) const
inline

References EXIT_BLOCK_PTR_FOR_FN, m_bb, and m_fun.

◆ start_phis()

gphi_iterator ana::supernode::start_phis ( )
inline

◆ to_json()

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

Field Documentation

◆ m_bb

const basic_block ana::supernode::m_bb

Referenced by entry_p(), and return_p().

◆ m_fun

function* const ana::supernode::m_fun

Referenced by entry_p(), get_function(), and return_p().

◆ m_index

const int ana::supernode::m_index

◆ m_phi_nodes

gimple_seq ana::supernode::m_phi_nodes

Referenced by start_phis().

◆ m_preds

auto_vec<edge_t *> dnode< supergraph_traits >::m_preds
inherited

◆ m_returning_call

gcall* const ana::supernode::m_returning_call

◆ m_stmts

auto_vec<gimple *> ana::supernode::m_stmts

Referenced by get_last_stmt().

◆ m_succs

auto_vec<edge_t *> dnode< supergraph_traits >::m_succs
inherited

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