SideEffectIRInterface.hpp

Go to the documentation of this file.
00001 
00015 #ifndef SideEffectIRInterface_h
00016 #define SideEffectIRInterface_h
00017 
00018 //#include <iostream>
00019 #include <list>
00020 //#include <string>
00021 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00022 #include <OpenAnalysis/IRInterface/IRHandles.hpp>
00023 #include <OpenAnalysis/IRInterface/CalleeToCallerVisitorIRInterface.hpp>
00024 
00025 namespace OA {
00026   namespace SideEffect {
00027 
00033 class SideEffectIRInterface : public virtual IRHandlesIRInterface, public virtual DataFlow::CalleeToCallerVisitorIRInterface 
00034 {
00035  public:
00036   SideEffectIRInterface() { }
00037   virtual ~SideEffectIRInterface() { }
00038  
00041   virtual OA_ptr<IRStmtIterator> getStmtIterator(ProcHandle h) = 0; 
00042 
00045   virtual OA_ptr<MemRefHandleIterator> getDefMemRefs(StmtHandle stmt) = 0;
00046   
00049   virtual OA_ptr<MemRefHandleIterator> getUseMemRefs(StmtHandle stmt) = 0;
00050   
00052   virtual OA_ptr<IRCallsiteIterator> getCallsites(StmtHandle h) = 0;
00053 
00054   virtual SymHandle getProcSymHandle(ProcHandle h) = 0;
00055 };  
00056 
00057   } // end of namespace ReachDef
00058 } // end of namespace OA
00059 
00060 #endif 

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