ManagerDataDep.hpp

Go to the documentation of this file.
00001 #ifndef ManagerDataDep_h
00002 #define ManagerDataDep_h
00003 
00004 /* Before DataDep is implemented what analyses are needed?
00005     - Loop Invariant detection
00006         - UD and DU Chains (how mature is this analysis?)
00007     - Induction variable detection
00008         - Induction variable tuples
00009             - Is this a safe assumption? One basic induction var for loop.
00010 
00011   Expansion of GCD:
00012     - Detect loops
00013 */
00014 
00015 #include <OpenAnalysis/Loop/LoopAbstraction.hpp>
00016 #include <OpenAnalysis/IRInterface/DataDepIRInterface.hpp>
00017 #include "DataDepResults.hpp"
00018 using namespace OA::Loop;
00019 
00020 namespace OA {
00021 namespace DataDep { 
00022 
00024 class ManagerDataDep {
00025   public:
00026     ManagerDataDep(OA_ptr<DataDepIRInterface> _ir);
00027 
00030     virtual OA_ptr<DataDepResults> performAnalysis(
00031         ProcHandle p, OA_ptr<LoopAbstraction> loop) = 0;
00032 
00033   protected:
00034     OA_ptr<DataDepIRInterface> mIR;
00035 };
00036 
00037 
00038     // needed for GCD:
00039 
00040     // getExprTree(ExprHandle h)
00041     // getConstValIntVal
00042     // getOpType
00043 
00044     // bool isInLoop(StmtHandle h, CFG cfg);
00045 } } // namespaces
00046 
00047 #endif