ManagerUDDUChainsStandard.hpp

Go to the documentation of this file.
00001 
00016 #ifndef ManagerUDDUChainsStandard_h
00017 #define ManagerUDDUChainsStandard_h
00018 
00019 //--------------------------------------------------------------------
00020 // OpenAnalysis headers
00021 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00022 #include <OpenAnalysis/IRInterface/UDDUChainsIRInterface.hpp>
00023 #include <OpenAnalysis/ReachDefs/Interface.hpp>
00024 #include <OpenAnalysis/Alias/Interface.hpp>
00025 #include <OpenAnalysis/UDDUChains/UDDUChainsStandard.hpp>
00026 #include <OpenAnalysis/SideEffect/InterSideEffectInterface.hpp>
00027 #include <OpenAnalysis/MemRefExpr/MemRefExprVisitor.hpp>
00028 #include <OpenAnalysis/MemRefExpr/MemRefExpr.hpp>
00029 
00030 namespace OA {
00031   namespace UDDUChains {
00032 
00033 
00039 class ManagerUDDUChainsStandard {
00040       //??? eventually public OA::AnnotationManager
00041 public:
00042   ManagerUDDUChainsStandard(OA_ptr<UDDUChainsIRInterface> _ir);
00043   ~ManagerUDDUChainsStandard () {}
00044   OA_ptr<UDDUChainsStandard> performAnalysis(ProcHandle, 
00045         OA_ptr<Alias::Interface> alias, OA_ptr<ReachDefs::Interface> reachDefs,
00046         OA_ptr<SideEffect::InterSideEffectInterface> interSE);
00047 
00048 private:
00049   // helper functions
00050   bool locMayAliasMemRef(OA_ptr<Alias::Interface> alias,
00051                          OA_ptr<Location> loc,
00052                          MemRefHandle memref);
00053 
00054   bool locMustAliasMemRef(OA_ptr<Alias::Interface> alias,
00055                           OA_ptr<Location> loc,
00056                           MemRefHandle memref);
00057 private:
00058   OA_ptr<UDDUChainsIRInterface> mIR;
00059 
00060 };
00061 
00062   } // end of UDDUChains namespace
00063 } // end of OA namespace
00064 
00065 #endif

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