diff options
author | Devang Patel <dpatel@apple.com> | 2007-10-05 22:29:34 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2007-10-05 22:29:34 +0000 |
commit | 5c4cd0d82e22a50e95a1acffa3364e4f7658ab32 (patch) | |
tree | 1fe70934bd152b13e9f4872240293622cec868c7 /lib/VMCore/Dominators.cpp | |
parent | b75ed322c4d5fd3ca5ac2fb0cdcedb4413eb8cce (diff) | |
download | external_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.cpp | 7 |
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); } |