ParamBindingsIRInterface.hpp

Go to the documentation of this file.
00001 
00015 #ifndef ParamBindingsIRInterface_h
00016 #define ParamBindingsIRInterface_h
00017 
00018 #include <OpenAnalysis/Utils/OA_ptr.hpp>
00019 #include <OpenAnalysis/IRInterface/IRHandles.hpp>
00020 #include <OpenAnalysis/Location/Locations.hpp>
00021 #include <OpenAnalysis/ExprTree/ExprTree.hpp>
00022 
00023 namespace OA {
00024 
00025 typedef IRCallsiteParamIterator ExprHandleIterator;
00026 
00027   namespace DataFlow {
00028 
00029 
00032 class ParamBindingsIRInterface : public virtual IRHandlesIRInterface {
00033  public:
00034   ParamBindingsIRInterface() { }
00035   virtual ~ParamBindingsIRInterface() { }
00036   
00039   virtual OA_ptr<IRStmtIterator> getStmtIterator(ProcHandle h) = 0; 
00040   
00044   virtual OA_ptr<MemRefHandleIterator> getAllMemRefs(StmtHandle stmt) = 0;
00045   
00048   virtual OA_ptr<MemRefExprIterator> 
00049       getMemRefExprIterator(MemRefHandle h) = 0;
00050 
00051 
00054   virtual OA_ptr<IRCallsiteParamIterator> getCallsiteParams(CallHandle h) = 0;
00055 
00058   //virtual OA_ptr<IRSymIterator> getRefSymIterator(ProcHandle h) = 0; 
00059 
00061   virtual bool isParam(SymHandle) = 0;
00062 
00064   //virtual bool isRefParam(SymHandle) = 0;
00065                
00067   virtual SymHandle getFormalForActual(ProcHandle caller, CallHandle call, 
00068                                        ProcHandle callee, ExprHandle param) = 0; 
00070   virtual OA_ptr<ExprTree> getExprTree(ExprHandle h) = 0;
00071   
00072 };  
00073 
00074   } // end of namespace DataFlow
00075 } // end of namespace OA
00076 
00077 #endif 

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