Public Member Functions | Private Types | Private Member Functions | Private Attributes

OA::ICFG::ManagerICFGStandard Class Reference

#include <ManagerICFG.hpp>

Collaboration diagram for OA::ICFG::ManagerICFGStandard:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ManagerICFGStandard (OA_ptr< ICFGIRInterface > _ir)
 ~ManagerICFGStandard ()
OA_ptr< ICFGperformAnalysis (OA_ptr< IRProcIterator >, OA_ptr< CFG::EachCFGInterface >, OA_ptr< CallGraph::CallGraphInterface >)

Private Types

typedef std::map< OA_ptr
< CFG::Node >, OA_ptr< Node > > 
NodeToNodeMap

Private Member Functions

bool stmt_has_call (StmtHandle stmt)
StmtHandle get_call_stmt (OA_ptr< CFG::Node > cfgNode)
OA_ptr< Nodecreate_icfg_node (OA_ptr< ICFG > icfg, ProcHandle proc, NodeType pType, OA_ptr< CFG::Node > cfgNode)
OA_ptr< Nodehandle_call_node (OA_ptr< ICFG > icfg, ProcHandle proc, OA_ptr< CFG::Node > cfgNodeNew, OA_ptr< Node > prevICFGNode, OA_ptr< Node > &firstICFGNode, std::list< ProcHandle > &worklist)
OA_ptr< std::list< OA_ptr
< CFG::Node > > > 
break_out_calls (OA_ptr< CFG::Node > cfgNode)

Private Attributes

OA_ptr< ICFGIRInterfacemIR
OA_ptr< CFG::EachCFGInterfacemEachCFG
OA_ptr
< CallGraph::CallGraphInterface
mCallGraph
NodeToNodeMap mCFGNodeToICFGNode

Detailed Description

The AnnotationManager for ICFGStandard. This class can build an ICFGStandard, (eventually) read one in from a file, and write one out to a file.

Definition at line 45 of file ManagerICFG.hpp.


Member Typedef Documentation

Definition at line 83 of file ManagerICFG.hpp.


Constructor & Destructor Documentation

OA::ICFG::ManagerICFGStandard::ManagerICFGStandard ( OA_ptr< ICFGIRInterface _ir  ) 

Definition at line 27 of file ManagerICFG.cpp.

References OA::ICFG::debug, and OA_DEBUG_CTRL_MACRO.

OA::ICFG::ManagerICFGStandard::~ManagerICFGStandard (  )  [inline]

Definition at line 48 of file ManagerICFG.hpp.


Member Function Documentation

OA_ptr< std::list< OA_ptr< CFG::Node > > > OA::ICFG::ManagerICFGStandard::break_out_calls ( OA_ptr< CFG::Node cfgNode  )  [private]

Definition at line 187 of file ManagerICFG.cpp.

References stmt_has_call().

Referenced by performAnalysis().

Here is the call graph for this function:

OA_ptr< Node > OA::ICFG::ManagerICFGStandard::create_icfg_node ( OA_ptr< ICFG icfg,
ProcHandle  proc,
NodeType  pType,
OA_ptr< CFG::Node cfgNode 
) [private]

Definition at line 72 of file ManagerICFG.cpp.

References mCFGNodeToICFGNode.

Referenced by handle_call_node(), and performAnalysis().

StmtHandle OA::ICFG::ManagerICFGStandard::get_call_stmt ( OA_ptr< CFG::Node cfgNode  )  [private]

Definition at line 58 of file ManagerICFG.cpp.

References stmt_has_call().

Referenced by handle_call_node(), and performAnalysis().

Here is the call graph for this function:

OA_ptr< Node > OA::ICFG::ManagerICFGStandard::handle_call_node ( OA_ptr< ICFG icfg,
ProcHandle  proc,
OA_ptr< CFG::Node cfgNodeNew,
OA_ptr< Node prevICFGNode,
OA_ptr< Node > &  firstICFGNode,
std::list< ProcHandle > &  worklist 
) [private]

The returned prevICFGNode (last one in sequence) is returned. firstICFGNode is set to first node in sequence.

Definition at line 87 of file ManagerICFG.cpp.

References OA::ICFG::CALL_EDGE, OA::ICFG::CALL_NODE, OA::ICFG::CALL_RETURN_EDGE, OA::ICFG::CFLOW_EDGE, OA::OA_ptr< T >::convert(), create_icfg_node(), OA::ICFG::ENTRY_NODE, OA::ICFG::EXIT_NODE, get_call_stmt(), mCallGraph, mCFGNodeToICFGNode, mEachCFG, mIR, OA::OA_ptr< T >::ptrEqual(), OA::ICFG::RETURN_EDGE, and OA::ICFG::RETURN_NODE.

Referenced by performAnalysis().

Here is the call graph for this function:

OA_ptr< ICFG > OA::ICFG::ManagerICFGStandard::performAnalysis ( OA_ptr< IRProcIterator procIter,
OA_ptr< CFG::EachCFGInterface eachCFG,
OA_ptr< CallGraph::CallGraphInterface cGraph 
)
bool OA::ICFG::ManagerICFGStandard::stmt_has_call ( StmtHandle  stmt  )  [private]

Definition at line 35 of file ManagerICFG.cpp.

References OA::ICFG::debug, mCallGraph, and mIR.

Referenced by break_out_calls(), get_call_stmt(), and performAnalysis().


Member Data Documentation

Definition at line 78 of file ManagerICFG.hpp.

Referenced by handle_call_node(), performAnalysis(), and stmt_has_call().

Definition at line 84 of file ManagerICFG.hpp.

Referenced by create_icfg_node(), handle_call_node(), and performAnalysis().

Definition at line 77 of file ManagerICFG.hpp.

Referenced by handle_call_node(), and performAnalysis().

Definition at line 76 of file ManagerICFG.hpp.

Referenced by handle_call_node(), performAnalysis(), and stmt_has_call().


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