00001 00016 #ifndef ActivityIRInterface_h 00017 #define ActivityIRInterface_h 00018 00019 #include <OpenAnalysis/Utils/OA_ptr.hpp> 00020 #include <OpenAnalysis/IRInterface/IRHandles.hpp> 00021 #include <OpenAnalysis/Location/Locations.hpp> 00022 #include <OpenAnalysis/ExprTree/ExprTree.hpp> 00023 #include <OpenAnalysis/IRInterface/CalleeToCallerVisitorIRInterface.hpp> 00024 //#include "ExprStmtPairIterator.hpp" 00025 #include <OpenAnalysis/IRInterface/AssignPairIterator.hpp> 00026 00027 namespace OA { 00028 00029 typedef IRCallsiteParamIterator ExprHandleIterator; 00030 00031 namespace Activity { 00032 00036 class ActivityIRInterface : public virtual IRHandlesIRInterface , public virtual DataFlow::CalleeToCallerVisitorIRInterface { 00037 public: 00038 ActivityIRInterface() { } 00039 virtual ~ActivityIRInterface() { } 00040 00042 virtual OA_ptr<MemRefExprIterator> getIndepMemRefExprIter(ProcHandle h) = 0; 00043 00045 virtual OA_ptr<MemRefExprIterator> getDepMemRefExprIter(ProcHandle h) = 0; 00046 00049 virtual OA_ptr<IRStmtIterator> getStmtIterator(ProcHandle h) = 0; 00050 00052 virtual OA_ptr<IRCallsiteIterator> getCallsites(StmtHandle h) = 0; 00053 00056 virtual OA::OA_ptr<OA::IRCallsiteParamIterator> 00057 getCallsiteParams(OA::CallHandle h) = 0; 00058 00060 virtual OA_ptr<ExprTree> getExprTree(ExprHandle h) = 0; 00061 00064 virtual OA_ptr<MemRefHandleIterator> getDefMemRefs(StmtHandle stmt) = 0; 00065 00068 virtual OA_ptr<MemRefHandleIterator> getUseMemRefs(StmtHandle stmt) = 0; 00069 00073 virtual OA_ptr<AssignPairIterator> 00074 getAssignPairIterator(StmtHandle h) = 0; 00075 00077 virtual int getSizeInBytes(SymHandle h) = 0; 00078 00079 }; 00080 00081 } // end of namespace Activity 00082 } // end of namespace OA 00083 00084 #endif
1.6.1