00001 00022 #ifndef CallGraphIRInterface_h 00023 #define CallGraphIRInterface_h 00024 00025 //----------------------------------------------------------------------------- 00026 // This file contains the abstract base classes for the IR interface. 00027 // 00028 // See the top level README for a description of the IRInterface and 00029 // how to use it. 00030 //----------------------------------------------------------------------------- 00031 00032 #include <iostream> 00033 #include "IRHandles.hpp" 00034 //#include "CFGIRInterface.hpp" 00035 #include <OpenAnalysis/MemRefExpr/MemRefExpr.hpp> 00036 00037 namespace OA { 00038 namespace CallGraph { 00039 00040 00046 class CallGraphIRInterface : public virtual IRHandlesIRInterface { 00047 public: 00048 CallGraphIRInterface() { } 00049 //virtual ~CFGIRInterface() = 0 ; 00050 virtual ~CallGraphIRInterface() {} 00051 00055 virtual OA_ptr<IRStmtIterator> getStmtIterator(ProcHandle h) = 0; 00056 00058 virtual OA_ptr<IRCallsiteIterator> getCallsites(StmtHandle h) = 0; 00059 00061 virtual SymHandle getProcSymHandle(ProcHandle h) = 0; 00062 00066 virtual OA_ptr<MemRefExpr> getCallMemRefExpr(CallHandle h) = 0; 00067 00068 }; 00069 00070 00071 } // end of namespace CallGraph 00072 } // end of namespace OA 00073 00074 #endif
1.6.1