aboutsummaryrefslogtreecommitdiffstats
path: root/lib/VMCore/Dominators.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2007-10-05 22:29:34 +0000
committerDevang Patel <dpatel@apple.com>2007-10-05 22:29:34 +0000
commit5c4cd0d82e22a50e95a1acffa3364e4f7658ab32 (patch)
tree1fe70934bd152b13e9f4872240293622cec868c7 /lib/VMCore/Dominators.cpp
parentb75ed322c4d5fd3ca5ac2fb0cdcedb4413eb8cce (diff)
downloadexternal_llvm-5c4cd0d82e22a50e95a1acffa3364e4f7658ab32.tar.gz
external_llvm-5c4cd0d82e22a50e95a1acffa3364e4f7658ab32.tar.bz2
external_llvm-5c4cd0d82e22a50e95a1acffa3364e4f7658ab32.zip
Fix bug in updating dominance frontier after loop
unswitch when frontier includes basic blocks that are not inside loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42654 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Dominators.cpp')
-rw-r--r--lib/VMCore/Dominators.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/VMCore/Dominators.cpp b/lib/VMCore/Dominators.cpp
index 164fb64d0e..4e728ac3d4 100644
--- a/lib/VMCore/Dominators.cpp
+++ b/lib/VMCore/Dominators.cpp
@@ -422,8 +422,11 @@ void DominanceFrontier::splitBlock(BasicBlock *NewBB) {
}
if (NewBBI != end()) {
- DominanceFrontier::DomSetType NewBBSet = NewBBI->second;
- NewBBSet.insert(Set.begin(), Set.end());
+ for (DominanceFrontier::DomSetType::iterator SetI = Set.begin(),
+ E = Set.end(); SetI != E; ++SetI) {
+ BasicBlock *SB = *SetI;
+ addToFrontier(NewBBI, SB);
+ }
} else
addBasicBlock(NewBB, Set);
}