summaryrefslogtreecommitdiff
path: root/lib/Analysis
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-07-28 20:28:50 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-07-28 20:28:50 +0000
commit329878f4ddd72c6f2d2d6acfa48d7e1447ed88c0 (patch)
tree734153c5279d45fc261855524c9d4fb7089047a0 /lib/Analysis
parent36880e704f63d4c77a3c5a94047b5afdf79e82db (diff)
downloadllvm-329878f4ddd72c6f2d2d6acfa48d7e1447ed88c0.tar.gz
llvm-329878f4ddd72c6f2d2d6acfa48d7e1447ed88c0.tar.bz2
llvm-329878f4ddd72c6f2d2d6acfa48d7e1447ed88c0.tar.xz
RegionInfo: Make sure to free cached nodes; Tobias, please check!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109650 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis')
-rw-r--r--lib/Analysis/RegionInfo.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Analysis/RegionInfo.cpp b/lib/Analysis/RegionInfo.cpp
index ac660e72f0..6f38dcc968 100644
--- a/lib/Analysis/RegionInfo.cpp
+++ b/lib/Analysis/RegionInfo.cpp
@@ -59,6 +59,11 @@ Region::Region(BasicBlock *Entry, BasicBlock *Exit, RegionInfo* RInfo,
: RegionNode(Parent, Entry, 1), RI(RInfo), DT(dt), exit(Exit) {}
Region::~Region() {
+ // Free the cached nodes.
+ for (BBNodeMapT::iterator it = BBNodeMap.begin(),
+ ie = BBNodeMap.end(); it != ie; ++it)
+ delete it->second;
+
// Only clean the cache for this Region. Caches of child Regions will be
// cleaned when the child Regions are deleted.
BBNodeMap.clear();