diff --git a/include/inc-deep/deep.hpp b/include/inc-deep/deep.hpp index 049ee4564129340a6d55d30525e770994b93537a..e1865ded84d8b68dc6b6bbd4815434425b88f0de 100644 --- a/include/inc-deep/deep.hpp +++ b/include/inc-deep/deep.hpp @@ -50,8 +50,8 @@ namespace IRDB_SDK virtual unique_ptr<StaticGlobalStartMap_t > getStaticGlobalRanges() const = 0; virtual unique_ptr<RangeSentinelSet_t > getRangeSentinels() const = 0; - virtual unique_ptr<LoopNest_t> getLoopNest(const Function_t* f) const = 0; - virtual unique_ptr<LoopNest_t> getLoopNest(const ControlFlowGraph_t* cfg) const = 0; + virtual unique_ptr<LoopNest_t> getLoops(Function_t* f) const = 0; + virtual unique_ptr<LoopNest_t> getLoops(ControlFlowGraph_t* cfg) const = 0; // factories static unique_ptr<DeepAnalysis_t> factory(FileIR_t* firp, const AnalysisEngine_t& ae=aeSTARS, const vector<string>& options={}); diff --git a/include/inc-deep/loops.hpp b/include/inc-deep/loops.hpp index 32193af8bd8fa422ac67ada864101c43b25adaf3..4ced624532d7bc77a4d6eb86744db16fc1757a59 100644 --- a/include/inc-deep/loops.hpp +++ b/include/inc-deep/loops.hpp @@ -25,7 +25,7 @@ namespace IRDB_SDK class Loop_t; // forward decl - using LoopSet_t = set<Loop_t>; + using LoopSet_t = set<Loop_t*>; class Loop_t { @@ -34,7 +34,10 @@ namespace IRDB_SDK Loop_t(const Loop_t& copy) = delete; public: - virtual ~Loop_t(); + virtual ~Loop_t() {} + + virtual BasicBlock_t* getPreheader() const = 0; + virtual BasicBlock_t* getHeader() const = 0; virtual BasicBlockSet_t getAllBlocks() const = 0; virtual BasicBlockSet_t getOuterBlocks() const = 0; virtual LoopSet_t getInnerLoops() const = 0;