From 3267ac26338c701dffa3267da6c6ca15475b4999 Mon Sep 17 00:00:00 2001
From: Jason Hiser <jdhiser@gmail.com>
Date: Tue, 23 Jul 2019 14:06:56 -0400
Subject: [PATCH] updates to actually use loops

---
 include/inc-deep/deep.hpp  | 4 ++--
 include/inc-deep/loops.hpp | 7 +++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/include/inc-deep/deep.hpp b/include/inc-deep/deep.hpp
index 049ee45..e1865de 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 32193af..4ced624 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;
-- 
GitLab