[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