DUGIRInterface.hpp

Go to the documentation of this file.
00001 
00020 #ifndef DUGIRInterface_h
00021 #define DUGIRInterface_h
00022 
00023 #include <iostream>
00024 
00025 #include <OpenAnalysis/Location/Locations.hpp>
00026 #include <OpenAnalysis/ExprTree/ExprTree.hpp>
00027 #include "IRHandles.hpp"
00028 //#include "ExprStmtPairIterator.hpp"
00029 //#include <OpenAnalysis/IRInterface/AssignPairIterator.hpp>
00030 
00031 namespace OA {
00032 
00033   namespace DUG {
00034 
00040 class DUGIRInterface : public virtual IRHandlesIRInterface {
00041  public:
00042   DUGIRInterface() { }
00043   virtual ~DUGIRInterface() {} 
00044   
00047 //  virtual OA_ptr<LocIterator> getIndepLocIter(ProcHandle h) = 0;
00048   
00051 //  virtual OA_ptr<LocIterator> getDepLocIter(ProcHandle h) = 0;
00052 
00054   virtual OA_ptr<MemRefExprIterator> getIndepMemRefExprIter(ProcHandle h) = 0;
00055 
00057   virtual OA_ptr<MemRefExprIterator> getDepMemRefExprIter(ProcHandle h) = 0;
00058   
00062   virtual OA_ptr<IRStmtIterator> getStmtIterator(ProcHandle h) = 0; 
00063 
00065   virtual OA_ptr<IRCallsiteIterator> getCallsites(StmtHandle h) = 0;
00066 
00069   virtual OA::OA_ptr<OA::IRCallsiteParamIterator> 
00070     getCallsiteParams(OA::CallHandle h) = 0;
00071 
00073   virtual OA_ptr<ExprTree> getExprTree(ExprHandle h) = 0;
00074   
00076   virtual SymHandle getSymHandle(CallHandle expr) = 0;
00077   
00079   virtual ProcHandle getProcHandle(SymHandle sym) = 0;
00080 
00085   virtual OA_ptr<Location> getLocation(ProcHandle p, SymHandle s) = 0;
00086 
00090   virtual OA_ptr<MemRefHandleIterator> getDefMemRefs(StmtHandle stmt) = 0;
00091 
00095   virtual OA_ptr<MemRefHandleIterator> getUseMemRefs(StmtHandle stmt) = 0;
00096 
00099   virtual OA_ptr<MemRefExprIterator> 
00100       getMemRefExprIterator(MemRefHandle h) = 0;
00101 
00105   virtual OA_ptr<MemRefHandleIterator> getAllMemRefs(StmtHandle stmt) = 0;
00106 
00107   virtual OA::OA_ptr<OA::MemRefExpr> 
00108       convertSymToMemRefExpr(OA::SymHandle sym) = 0;
00109 
00110   virtual OA::OA_ptr<OA::MemRefExprIterator>
00111   getUseMREs(OA::StmtHandle stmt) = 0;
00112 
00113   virtual OA::OA_ptr<OA::MemRefExprIterator>
00114   getDefMREs(OA::StmtHandle stmt) = 0;
00115 
00116   virtual OA::SymHandle getFormalSym(OA::ProcHandle, int) = 0;
00117 };
00118 
00119   } // end of namespace DUG
00120 } // end of namespace OA
00121 
00122 #endif

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