OA::ReachDefsOverwrite::ManagerReachDefsOverwriteStandard Class Reference

#include <ManagerReachDefsOverwriteStandard.hpp>

Inheritance diagram for OA::ReachDefsOverwrite::ManagerReachDefsOverwriteStandard:
Inheritance graph
[legend]
Collaboration diagram for OA::ReachDefsOverwrite::ManagerReachDefsOverwriteStandard:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ManagerReachDefsOverwriteStandard (OA_ptr< ReachDefs::ReachDefsIRInterface > _ir)
 ~ManagerReachDefsOverwriteStandard ()
OA_ptr
< ReachDefsOverwriteStandard
performAnalysis (ProcHandle, OA_ptr< CFG::CFGInterface > cfg, OA_ptr< Alias::Interface > alias, OA_ptr< SideEffect::InterSideEffectInterface > interSE, DataFlow::DFPImplement algorithm)
 Used to perform analysis when not using AQM.

Private Member Functions

OA_ptr< DataFlow::DataFlowSettransfer (OA_ptr< DataFlow::DataFlowSet > in, OA::StmtHandle stmt)
 Core of analysis algorithm. Transfer function for a stmt.

Private Attributes

std::map< StmtHandle, std::set
< OA_ptr< Location > > > 
mStmtAllDefMap
OA_ptr
< ReachDefsOverwriteStandard
mReachDefOverwriteMap

Detailed Description

The AnnotationManager for ReachDefsOverwriteStandard. This class can build an ReachDefsOverwriteStandard

Definition at line 32 of file ManagerReachDefsOverwriteStandard.hpp.


Constructor & Destructor Documentation

OA::ReachDefsOverwrite::ManagerReachDefsOverwriteStandard::ManagerReachDefsOverwriteStandard ( OA_ptr< ReachDefs::ReachDefsIRInterface _ir  ) 

Definition at line 25 of file ManagerReachDefsOverwriteStandard.cpp.

OA::ReachDefsOverwrite::ManagerReachDefsOverwriteStandard::~ManagerReachDefsOverwriteStandard (  )  [inline]

Definition at line 36 of file ManagerReachDefsOverwriteStandard.hpp.


Member Function Documentation

OA_ptr< ReachDefsOverwriteStandard > OA::ReachDefsOverwrite::ManagerReachDefsOverwriteStandard::performAnalysis ( ProcHandle  proc,
OA_ptr< CFG::CFGInterface cfg,
OA_ptr< Alias::Interface alias,
OA_ptr< SideEffect::InterSideEffectInterface interSE,
DataFlow::DFPImplement  algorithm 
)

Used to perform analysis when not using AQM.

Uses the CFGDFProblem::solve functionality to get In and Out reaching definition sets for each basic block. Then uses the statement transfer function to get an In set for each stmt.

Reimplemented from OA::ReachDefs::ManagerReachDefsStandard.

Definition at line 28 of file ManagerReachDefsOverwriteStandard.cpp.

References OA::OA_ptr< T >::convert(), OA::ReachDefsOverwrite::debug, OA::OA_ptr< T >::dump(), OA::IRHandle::hval(), OA::ReachDefs::ManagerReachDefsStandard::mAlias, OA::ReachDefs::ManagerReachDefsStandard::mIR, mReachDefOverwriteMap, OA::ReachDefs::ManagerReachDefsStandard::mSolver, mStmtAllDefMap, OA::ReachDefs::ManagerReachDefsStandard::mStmtMayDefMap, and OA::ReachDefs::ManagerReachDefsStandard::mStmtMustDefMap.

Here is the call graph for this function:

OA_ptr< DataFlow::DataFlowSet > OA::ReachDefsOverwrite::ManagerReachDefsOverwriteStandard::transfer ( OA_ptr< DataFlow::DataFlowSet in,
OA::StmtHandle  stmt 
) [private, virtual]

Core of analysis algorithm. Transfer function for a stmt.

KILL is the set of reaching definitions (statements) that may define the set of locations that are must defined in this statement

DEF is this statement if it may define anything

Reimplemented from OA::ReachDefs::ManagerReachDefsStandard.

Definition at line 120 of file ManagerReachDefsOverwriteStandard.cpp.

References OA::OA_ptr< T >::convert(), OA::DataFlow::IRHandleIterator< T >::current(), OA::ReachDefsOverwrite::debug, OA::OA_ptr< T >::dump(), OA::dumpLocSet(), OA::IRHandle::hval(), OA::intersectLocSets(), OA::DataFlow::IRHandleIterator< T >::isValid(), OA::ReachDefs::ManagerReachDefsStandard::mIR, mReachDefOverwriteMap, mStmtAllDefMap, OA::ReachDefs::ManagerReachDefsStandard::mStmtMayDefMap, OA::ReachDefs::ManagerReachDefsStandard::mStmtMustDefMap, and OA::subSetOf().

Here is the call graph for this function:


Member Data Documentation

Definition at line 48 of file ManagerReachDefsOverwriteStandard.hpp.

Referenced by performAnalysis(), and transfer().

Definition at line 46 of file ManagerReachDefsOverwriteStandard.hpp.

Referenced by performAnalysis(), and transfer().


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

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