CallGraphIRInterface.hpp

Go to the documentation of this file.
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

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