[llvm-branch-commits] [llvm-branch] r86158 - /llvm/branches/Apple/Leela/lib/Transforms/Utils/BasicBlockUtils.cpp
Bill Wendling
isanbard at gmail.com
Thu Nov 5 11:16:32 PST 2009
Author: void
Date: Thu Nov 5 13:16:31 2009
New Revision: 86158
URL: http://llvm.org/viewvc/llvm-project?rev=86158&view=rev
Log:
$ svn merge -c 86147 https://llvm.org/svn/llvm-project/llvm/trunk
--- Merging r86147 into '.':
U lib/Transforms/Utils/BasicBlockUtils.cpp
Modified:
llvm/branches/Apple/Leela/lib/Transforms/Utils/BasicBlockUtils.cpp
Modified: llvm/branches/Apple/Leela/lib/Transforms/Utils/BasicBlockUtils.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Leela/lib/Transforms/Utils/BasicBlockUtils.cpp?rev=86158&r1=86157&r2=86158&view=diff
==============================================================================
--- llvm/branches/Apple/Leela/lib/Transforms/Utils/BasicBlockUtils.cpp (original)
+++ llvm/branches/Apple/Leela/lib/Transforms/Utils/BasicBlockUtils.cpp Thu Nov 5 13:16:31 2009
@@ -275,8 +275,6 @@
/// SplitEdge - Split the edge connecting specified block. Pass P must
/// not be NULL.
BasicBlock *llvm::SplitEdge(BasicBlock *BB, BasicBlock *Succ, Pass *P) {
- assert(!isa<IndirectBrInst>(BB->getTerminator()) &&
- "Cannot split an edge from an IndirectBrInst");
TerminatorInst *LatchTerm = BB->getTerminator();
unsigned SuccNum = 0;
#ifndef NDEBUG
@@ -386,6 +384,12 @@
bool IsLoopEntry = !!L;
bool SplitMakesNewLoopHeader = false;
for (unsigned i = 0; i != NumPreds; ++i) {
+ // This is slightly more strict than necessary; the minimum requirement
+ // is that there be no more than one indirectbr branching to BB. And
+ // all BlockAddress uses would need to be updated.
+ assert(!isa<IndirectBrInst>(Preds[i]->getTerminator()) &&
+ "Cannot split an edge from an IndirectBrInst");
+
Preds[i]->getTerminator()->replaceUsesOfWith(BB, NewBB);
if (LI) {
More information about the llvm-branch-commits
mailing list