00001 00016 #ifndef ALIASMANAGERAliasMapBasic_H 00017 #define ALIASMANAGERAliasMapBasic_H 00018 00019 //-------------------------------------------------------------------- 00020 #include <cassert> 00021 00022 // OpenAnalysis headers 00023 #include <OpenAnalysis/Utils/OA_ptr.hpp> 00024 #include <OpenAnalysis/Alias/AliasMap.hpp> 00025 00026 #include <OpenAnalysis/MemRefExpr/MemRefExprVisitor.hpp> 00027 #include <OpenAnalysis/Location/Locations.hpp> 00028 #include <OpenAnalysis/IRInterface/AliasIRInterface.hpp> 00029 00030 namespace OA { 00031 namespace Alias { 00032 00043 class ManagerAliasMapBasic { //??? eventually public OA::AnnotationManager 00044 public: 00045 ManagerAliasMapBasic(OA_ptr<AliasIRInterface> _ir) : mIR(_ir) {} 00046 ~ManagerAliasMapBasic () {} 00047 00048 OA_ptr<Alias::AliasMap> performAnalysis(ProcHandle proc); 00049 00050 /* 00051 OA_ptr<Alias::AliasMap> performAnalysis(ProcHandle proc) 00052 { 00053 // optimistic assumption that reference parameters don't alias 00054 // each other or globals 00055 OA_ptr<AliasMap> seedAliasMap; 00056 seedAliasMap = new AliasMap(proc); 00057 return performAnalysis(proc,seedAliasMap); 00058 } 00059 */ 00060 00063 //OA_ptr<Location> trivialMREToLoc(OA_ptr<MemRefExpr> mre); 00064 00065 private: 00066 OA_ptr<AliasIRInterface> mIR; 00067 ProcHandle mProc; 00068 00069 }; 00070 00071 } // end of Alias namespace 00072 } // end of OA namespace 00073 00074 #endif
1.6.1