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
1.6.1