ManagerAliasMapBasic.hpp

Go to the documentation of this file.
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

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