auto_ManagerLivenessStandard.hpp

Go to the documentation of this file.
00001 
00002 /* ManagerAutoLivenessStandard.hpp
00003    NOTE: This file was automatically generated by DFAGen.  It is the interface
00004          for the Liveness analysis manager.
00005 */
00006 
00007 #ifndef ManagerAutoLivenessStandard_H
00008 #define ManagerAutoLivenessStandard_H
00009 
00010 //--------------------------------------------------------------------
00011 // OpenAnalysis headers
00012 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00013 #include <OpenAnalysis/IRInterface/LivenessIRInterface.hpp>
00014 #include <OpenAnalysis/DFAGen/Liveness/auto_LivenessStandard.hpp>
00015 
00016 #include <OpenAnalysis/Alias/Interface.hpp>
00017 
00018 #include <OpenAnalysis/DataFlow/CFGDFProblem.hpp>
00019 #include <OpenAnalysis/Location/Location.hpp>
00020 #include <OpenAnalysis/DataFlow/IRHandleDataFlowSet.hpp>
00021 #include <OpenAnalysis/SideEffect/InterSideEffectInterface.hpp>
00022 #include <OpenAnalysis/DataFlow/CFGDFSolver.hpp>
00023 
00024 #include <OpenAnalysis/CFG/CFG.hpp>
00025 #include <OpenAnalysis/CFG/CFGInterface.hpp>
00026 
00027 namespace OA {
00028   namespace Liveness {
00029 
00030 
00031 class ManagerLivenessStandard
00032     : public virtual DataFlow::CFGDFProblem
00033 {
00034   public:
00035     ManagerLivenessStandard(OA_ptr<LivenessIRInterface> _ir);
00036     ~ManagerLivenessStandard () {}
00037 
00038     OA_ptr<LivenessStandard> performAnalysis(
00039         ProcHandle proc,
00040         OA_ptr<CFG::CFGInterface> cfg,
00041         OA_ptr<Alias::Interface> alias,
00042         OA_ptr<SideEffect::InterSideEffectInterface> interSE);
00043 
00044   private:
00045     OA_ptr<DataFlow::DataFlowSet> initializeTop();
00046     OA_ptr<DataFlow::DataFlowSet> initializeBottom();
00047 
00048     OA_ptr<DataFlow::DataFlowSet>
00049        initializeNodeIN(OA_ptr<CFG::NodeInterface> n);
00050 
00051     OA_ptr<DataFlow::DataFlowSet>
00052        initializeNodeOUT(OA_ptr<CFG::NodeInterface> n);
00053 
00054     void dumpset(OA_ptr<LivenessDFSet> inSet);
00055 
00056     OA_ptr<DataFlow::DataFlowSet> meet(
00057         OA_ptr<DataFlow::DataFlowSet> set1,
00058         OA_ptr<DataFlow::DataFlowSet> set2);
00059 
00060     OA_ptr<DataFlow::DataFlowSet> genSet(StmtHandle stmt);
00061 
00062     OA_ptr<DataFlow::DataFlowSet> killSet(StmtHandle stmt,
00063         OA_ptr<DataFlow::DataFlowSet> X);
00064 
00065     OA_ptr<DataFlow::DataFlowSet> transfer(
00066         OA_ptr<DataFlow::DataFlowSet> X,
00067         OA::StmtHandle Stmt);
00068 
00069     OA_ptr<LivenessIRInterface> mIR;
00070     OA_ptr<Alias::Interface> mAlias;
00071     OA_ptr<LivenessStandard> mLivenessMap;
00072     OA_ptr<DataFlow::CFGDFSolver> mSolver;
00073 
00074     std::map<StmtHandle, set<OA_ptr<Location> > > mStmt2MayDefMap;
00075     std::map<StmtHandle, set<OA_ptr<Location> > > mStmt2MustDefMap;
00076     std::map<StmtHandle, set<OA_ptr<Location> > > mStmt2MayUseMap;
00077     std::map<StmtHandle, set<OA_ptr<Location> > > mStmt2MustUseMap;
00078 };
00079 
00080   } // end of Liveness namespace
00081 } // end of OA namespace
00082 
00083 #endif

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