00001 #ifndef AvailableExpressionsIRInterface_H 00002 #define AvailableExpressionsIRInterface_H 00003 00004 #include <iostream> 00005 #include <list> 00006 #include <string> 00007 #include <OpenAnalysis/Utils/OA_ptr.hpp> 00008 #include <OpenAnalysis/IRInterface/IRHandles.hpp> 00009 #include <OpenAnalysis/NewExprTree/NewExprTree.hpp> 00010 00011 namespace OA { 00012 namespace AvailableExpressions { 00013 00014 class AvailableExpressionsIRInterface : public virtual IRHandlesIRInterface { 00015 public: 00016 AvailableExpressionsIRInterface() { } 00017 virtual ~AvailableExpressionsIRInterface() { } 00018 00019 virtual OA_ptr<IRStmtIterator> getStmtIterator(ProcHandle h) = 0; 00020 00021 virtual OA_ptr<MemRefHandleIterator> getAllMemRefs(StmtHandle stmt) = 0; 00022 00023 virtual OA_ptr<MemRefHandleIterator> getDefMemRefs(StmtHandle stmt) = 0; 00024 00025 virtual OA_ptr<MemRefHandleIterator> getUseMemRefs(StmtHandle stmt) = 0; 00026 00027 virtual OA_ptr<IRCallsiteIterator> getCallsites(StmtHandle h) = 0; 00028 00029 virtual OA_ptr<NewExprTree> getNewExprTree(OA::ExprHandle h) = 0; 00030 }; 00031 00032 } // end of namespace AvailableExpressions 00033 } // end of namespace OA 00034 00035 #endif
1.6.1