ManagerReachDefsOverwriteXAIF.hpp

Go to the documentation of this file.
00001 
00014 #ifndef ManagerReachDefsXAIF_h
00015 #define ManagerReachDefsXAIF_h
00016 
00017 //--------------------------------------------------------------------
00018 
00019 // OpenAnalysis headers
00020 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00021 #include <OpenAnalysis/ReachDefsOverwrite/Interface.hpp>
00022 #include <OpenAnalysis/CFG/CFGInterface.hpp>
00023 #include <OpenAnalysis/XAIF/ReachDefsOverwriteXAIF.hpp>
00024 #include <OpenAnalysis/IRInterface/XAIFIRInterface.hpp>
00025 
00026 namespace OA {
00027   namespace XAIF {
00028 
00034     class ManagerReachDefsOverwriteXAIF  { 
00035 
00036     public:
00037 
00038       ManagerReachDefsOverwriteXAIF(OA_ptr<XAIFIRInterface>);
00039       ~ManagerReachDefsOverwriteXAIF () {}
00040 
00041       OA_ptr<ReachDefsOverwriteXAIF> performAnalysis(OA_ptr<CFG::CFGInterface> cfg,
00042                                                      OA_ptr<ReachDefsOverwrite::Interface> reachDefs);
00043 
00044     private:
00045 
00046       OA_ptr<XAIFIRInterface> mIR;    
00047 
00048       std::map<MemRefHandle,StmtHandle> mMemRefToStmt;
00049 
00050       static int ourCurrentStartId;
00051 
00052       static int getNextChainId(); 
00053 
00054       
00055     };
00056 
00057   } 
00058 } 
00059 
00060 #endif