ManagerActiveStandard.hpp

Go to the documentation of this file.
00001 
00015 #ifndef ActiveManagerStandard_h
00016 #define ActiveManagerStandard_h
00017 
00018 //--------------------------------------------------------------------
00019 // OpenAnalysis headers
00020 #include "VaryStandard.hpp"
00021 #include "UsefulStandard.hpp"
00022 #include "ActiveStandard.hpp"
00023 
00024 #include <OpenAnalysis/IRInterface/ActivityIRInterface.hpp>
00025 #include <OpenAnalysis/CFG/CFGInterface.hpp>
00026 #include <OpenAnalysis/DataFlow/CFGDFProblem.hpp>
00027 #include <OpenAnalysis/DataFlow/LocDFSet.hpp>
00028 #include <OpenAnalysis/SideEffect/InterSideEffectInterface.hpp>
00029 
00030 namespace OA {
00031   namespace Activity {
00032 
00033 
00040 class ManagerActiveStandard {
00041       //??? eventually public OA::AnnotationManager
00042 public:
00043   ManagerActiveStandard(OA_ptr<ActivityIRInterface> _ir);
00044   ~ManagerActiveStandard () {}
00045 
00046   OA_ptr<ActiveStandard> performAnalysis(ProcHandle, 
00047           OA_ptr<CFG::CFGInterface> cfg,
00048           OA_ptr<Alias::Interface> alias,
00049           OA_ptr<VaryStandard> vary,
00050           OA_ptr<UsefulStandard> useful);
00051           //OA_ptr<SideEffect::InterSideEffectInterface> interSE,
00052           //OA_ptr<LocIterator> indepLocIter,
00053           //OA_ptr<LocIterator> depLocIter);
00054 
00055   /*
00057   OA_ptr<ActiveStandard> performAnalysis(ProcHandle, 
00058           OA_ptr<CFG::Interface> cfg,
00059           OA_ptr<Alias::Interface> alias,
00060           OA_ptr<SideEffect::InterSideEffectInterface> interSE);
00061           */
00062 
00063 private:
00064 // helper function
00065 void calculateActive(
00066         StmtHandle prevStmt, OA_ptr<LocIterator> prevOutVaryIter,
00067         StmtHandle stmt, OA_ptr<LocIterator> inUsefulIter);
00068 private:
00069   OA_ptr<ActivityIRInterface> mIR;
00070   OA_ptr<ActiveStandard> mActive;
00071   //OA_ptr<DepStandard> mDep;
00072   OA_ptr<Alias::Interface> mAlias;
00073 
00074 };
00075 
00076   } // end of Activity namespace
00077 } // end of OA namespace
00078 
00079 #endif