ManagerReachDefsOverwriteStandard.hpp

Go to the documentation of this file.
00001 
00012 #ifndef ReachDefsOverwriteManagerStandard_h
00013 #define ReachDefsOverwriteManagerStandard_h
00014 
00015 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00016 #include <OpenAnalysis/Alias/Interface.hpp>
00017 #include <OpenAnalysis/Location/Locations.hpp>
00018 #include <OpenAnalysis/DataFlow/IRHandleDataFlowSet.hpp>
00019 #include <OpenAnalysis/SideEffect/InterSideEffectInterface.hpp>
00020 #include <OpenAnalysis/CFG/CFGInterface.hpp>
00021 #include <OpenAnalysis/IRInterface/ReachDefsIRInterface.hpp>
00022 #include <OpenAnalysis/ReachDefs/ManagerReachDefsStandard.hpp>
00023 #include <OpenAnalysis/ReachDefsOverwrite/ReachDefsOverwriteStandard.hpp>
00024 
00025 namespace OA {
00026   namespace ReachDefsOverwrite {
00027 
00032     class ManagerReachDefsOverwriteStandard : public virtual ReachDefs::ManagerReachDefsStandard { 
00033 
00034     public:
00035       ManagerReachDefsOverwriteStandard(OA_ptr<ReachDefs::ReachDefsIRInterface> _ir);
00036       ~ManagerReachDefsOverwriteStandard () {}
00037 
00038       OA_ptr<ReachDefsOverwriteStandard> performAnalysis(ProcHandle, 
00039                                                          OA_ptr<CFG::CFGInterface> cfg, OA_ptr<Alias::Interface> alias, 
00040                                                          OA_ptr<SideEffect::InterSideEffectInterface> interSE,
00041                                                          DataFlow::DFPImplement algorithm);
00042     private:
00043       
00044       OA_ptr<DataFlow::DataFlowSet> transfer(OA_ptr<DataFlow::DataFlowSet> in, OA::StmtHandle stmt); 
00045 
00046       std::map<StmtHandle,std::set<OA_ptr<Location> > > mStmtAllDefMap;
00047 
00048       OA_ptr<ReachDefsOverwriteStandard> mReachDefOverwriteMap;
00049     
00050     };
00051 
00052   } 
00053 } 
00054 
00055 #endif

Generated on Sat Oct 31 05:21:24 2009 for OpenAnalysis by  doxygen 1.6.1