OA::ReachingDefs::ManagerReachingDefsStandard Class Reference

#include <auto_ManagerReachingDefsStandard.hpp>

Inheritance diagram for OA::ReachingDefs::ManagerReachingDefsStandard:
Inheritance graph
[legend]
Collaboration diagram for OA::ReachingDefs::ManagerReachingDefsStandard:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ManagerReachingDefsStandard (OA_ptr< ReachingDefsIRInterface > _ir)
 ~ManagerReachingDefsStandard ()
OA_ptr< ReachingDefsStandardperformAnalysis (ProcHandle proc, OA_ptr< CFG::CFGInterface > cfg, OA_ptr< Alias::Interface > alias, OA_ptr< SideEffect::InterSideEffectInterface > interSE)

Private Member Functions

OA_ptr< DataFlow::DataFlowSetinitializeTop ()
 Return an initialized top set.
OA_ptr< DataFlow::DataFlowSetinitializeBottom ()
 Return an initialized bottom set.
OA_ptr< DataFlow::DataFlowSetinitializeNodeIN (OA_ptr< CFG::NodeInterface > n)
 Should generate an in and out DataFlowSet for node.
OA_ptr< DataFlow::DataFlowSetinitializeNodeOUT (OA_ptr< CFG::NodeInterface > n)
void dumpset (OA_ptr< ReachingDefsDFSet > inSet)
OA_ptr< DataFlow::DataFlowSetmeet (OA_ptr< DataFlow::DataFlowSet > set1, OA_ptr< DataFlow::DataFlowSet > set2)
OA_ptr< DataFlow::DataFlowSetgenSet (StmtHandle stmt)
OA_ptr< DataFlow::DataFlowSetkillSet (StmtHandle stmt, OA_ptr< DataFlow::DataFlowSet > X)
OA_ptr< DataFlow::DataFlowSettransfer (OA_ptr< DataFlow::DataFlowSet > X, OA::StmtHandle Stmt)

Private Attributes

OA_ptr< ReachingDefsIRInterfacemIR
OA_ptr< Alias::InterfacemAlias
OA_ptr< ReachingDefsStandardmReachingDefsMap
OA_ptr< DataFlow::CFGDFSolvermSolver
std::map< StmtHandle, set
< OA_ptr< Location > > > 
mStmt2MayDefMap
std::map< StmtHandle, set
< OA_ptr< Location > > > 
mStmt2MustDefMap

Detailed Description

Definition at line 31 of file auto_ManagerReachingDefsStandard.hpp.


Constructor & Destructor Documentation

OA::ReachingDefs::ManagerReachingDefsStandard::ManagerReachingDefsStandard ( OA_ptr< ReachingDefsIRInterface _ir  ) 
OA::ReachingDefs::ManagerReachingDefsStandard::~ManagerReachingDefsStandard (  )  [inline]

Definition at line 36 of file auto_ManagerReachingDefsStandard.hpp.


Member Function Documentation

void OA::ReachingDefs::ManagerReachingDefsStandard::dumpset ( OA_ptr< ReachingDefsDFSet inSet  )  [private]

Definition at line 141 of file auto_ManagerReachingDefsStandard.cpp.

References OA::OA_ptr< T >::convert(), and mIR.

Referenced by meet(), and transfer().

Here is the call graph for this function:

OA_ptr< DataFlowSet > OA::ReachingDefs::ManagerReachingDefsStandard::genSet ( StmtHandle  stmt  )  [private]

Definition at line 183 of file auto_ManagerReachingDefsStandard.cpp.

References mStmt2MayDefMap.

Referenced by transfer().

OA_ptr< DataFlowSet > OA::ReachingDefs::ManagerReachingDefsStandard::initializeBottom (  )  [private, virtual]

Return an initialized bottom set.

Implements OA::DataFlow::CFGDFProblem.

Definition at line 36 of file auto_ManagerReachingDefsStandard.cpp.

OA_ptr< DataFlowSet > OA::ReachingDefs::ManagerReachingDefsStandard::initializeNodeIN ( OA_ptr< CFG::NodeInterface n  )  [private, virtual]

Should generate an in and out DataFlowSet for node.

Should generate an in and out DataFlowSet for node and store these in mNodeInSetMap and mNodeOutSetMap.

Implements OA::DataFlow::CFGDFProblem.

Definition at line 45 of file auto_ManagerReachingDefsStandard.cpp.

OA_ptr< DataFlowSet > OA::ReachingDefs::ManagerReachingDefsStandard::initializeNodeOUT ( OA_ptr< CFG::NodeInterface n  )  [private, virtual]

Implements OA::DataFlow::CFGDFProblem.

Definition at line 54 of file auto_ManagerReachingDefsStandard.cpp.

OA_ptr< DataFlowSet > OA::ReachingDefs::ManagerReachingDefsStandard::initializeTop (  )  [private, virtual]

Return an initialized top set.

Implements OA::DataFlow::CFGDFProblem.

Definition at line 28 of file auto_ManagerReachingDefsStandard.cpp.

OA_ptr< DataFlowSet > OA::ReachingDefs::ManagerReachingDefsStandard::killSet ( StmtHandle  stmt,
OA_ptr< DataFlow::DataFlowSet X 
) [private]

Definition at line 211 of file auto_ManagerReachingDefsStandard.cpp.

References OA::OA_ptr< T >::convert(), mStmt2MayDefMap, and mStmt2MustDefMap.

Referenced by transfer().

Here is the call graph for this function:

OA_ptr< DataFlowSet > OA::ReachingDefs::ManagerReachingDefsStandard::meet ( OA_ptr< DataFlow::DataFlowSet set1,
OA_ptr< DataFlow::DataFlowSet set2 
) [private, virtual]

OK to modify set1 and return it as result, because solver only passes a tempSet in as set1

Implements OA::DataFlow::CFGDFProblem.

Definition at line 154 of file auto_ManagerReachingDefsStandard.cpp.

References OA::OA_ptr< T >::convert(), OA::ReachingDefs::debug, and dumpset().

Here is the call graph for this function:

OA_ptr< ReachingDefsStandard > OA::ReachingDefs::ManagerReachingDefsStandard::performAnalysis ( ProcHandle  proc,
OA_ptr< CFG::CFGInterface cfg,
OA_ptr< Alias::Interface alias,
OA_ptr< SideEffect::InterSideEffectInterface interSE 
)
OA_ptr< DataFlowSet > OA::ReachingDefs::ManagerReachingDefsStandard::transfer ( OA_ptr< DataFlow::DataFlowSet in,
OA::StmtHandle  stmt 
) [private, virtual]

OK to modify in set and return it again as result because solver clones the BB in sets

Implements OA::DataFlow::CFGDFProblem.

Definition at line 248 of file auto_ManagerReachingDefsStandard.cpp.

References OA::OA_ptr< T >::convert(), OA::ReachingDefs::debug, dumpset(), genSet(), killSet(), mIR, and mReachingDefsMap.

Here is the call graph for this function:


Member Data Documentation

Definition at line 70 of file auto_ManagerReachingDefsStandard.hpp.

Referenced by performAnalysis().

Definition at line 69 of file auto_ManagerReachingDefsStandard.hpp.

Referenced by dumpset(), performAnalysis(), and transfer().

Definition at line 71 of file auto_ManagerReachingDefsStandard.hpp.

Referenced by performAnalysis(), and transfer().

Definition at line 74 of file auto_ManagerReachingDefsStandard.hpp.

Referenced by genSet(), killSet(), and performAnalysis().

Definition at line 75 of file auto_ManagerReachingDefsStandard.hpp.

Referenced by killSet(), and performAnalysis().


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

Generated on Sat Oct 31 05:32:55 2009 for OpenAnalysis by  doxygen 1.6.1