#include <ManagerReachDefsOverwriteStandard.hpp>


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::DataFlowSet > | transfer (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 |
The AnnotationManager for ReachDefsOverwriteStandard. This class can build an ReachDefsOverwriteStandard
Definition at line 32 of file ManagerReachDefsOverwriteStandard.hpp.
| 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.
| 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.

| 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().

OA_ptr<ReachDefsOverwriteStandard> OA::ReachDefsOverwrite::ManagerReachDefsOverwriteStandard::mReachDefOverwriteMap [private] |
Definition at line 48 of file ManagerReachDefsOverwriteStandard.hpp.
Referenced by performAnalysis(), and transfer().
std::map<StmtHandle,std::set<OA_ptr<Location> > > OA::ReachDefsOverwrite::ManagerReachDefsOverwriteStandard::mStmtAllDefMap [private] |
Definition at line 46 of file ManagerReachDefsOverwriteStandard.hpp.
Referenced by performAnalysis(), and transfer().
1.6.1