UDDUChainsIRInterface.hpp

Go to the documentation of this file.
00001 
00021 #ifndef UDDUChainsIRInterface_h
00022 #define UDDUChainsIRInterface_h
00023 
00024 #include <iostream>
00025 #include <list>
00026 #include <string>
00027 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00028 #include <OpenAnalysis/IRInterface/IRHandles.hpp>
00029 
00030 namespace OA {
00031   namespace UDDUChains {
00032 
00038 class UDDUChainsIRInterface : public virtual IRHandlesIRInterface {
00039  public:
00040   UDDUChainsIRInterface() { }
00041   virtual ~UDDUChainsIRInterface() { }
00042  
00046   virtual OA_ptr<IRStmtIterator> getStmtIterator(ProcHandle h) = 0; 
00047 
00051   virtual OA_ptr<MemRefHandleIterator> getDefMemRefs(StmtHandle stmt) = 0;
00052    
00056   virtual OA_ptr<MemRefHandleIterator> getUseMemRefs(StmtHandle stmt) = 0;
00057   
00059   virtual OA_ptr<IRCallsiteIterator> getCallsites(StmtHandle h) = 0;
00060 
00061 };  
00062 
00063   } // end of namespace UDDUChains
00064 } // end of namespace OA
00065 
00066 #endif