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
1.7.1