summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/patches/patch-09-llvm-r230058-indirectbrs-assert.diff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/patches/patch-09-llvm-r230058-indirectbrs-assert.diff')
-rw-r--r--contrib/llvm/patches/patch-09-llvm-r230058-indirectbrs-assert.diff55
1 files changed, 0 insertions, 55 deletions
diff --git a/contrib/llvm/patches/patch-09-llvm-r230058-indirectbrs-assert.diff b/contrib/llvm/patches/patch-09-llvm-r230058-indirectbrs-assert.diff
deleted file mode 100644
index 1d31c28..0000000
--- a/contrib/llvm/patches/patch-09-llvm-r230058-indirectbrs-assert.diff
+++ /dev/null
@@ -1,55 +0,0 @@
-Pull in r230058 from upstream llvm trunk (by Benjamin Kramer):
-
- LoopRotate: When reconstructing loop simplify form don't split edges
- from indirectbrs.
-
- Yet another chapter in the endless story. While this looks like we
- leave the loop in a non-canonical state this replicates the logic in
- LoopSimplify so it doesn't diverge from the canonical form in any way.
-
- PR21968
-
-This fixes a "Cannot split critical edge from IndirectBrInst" assertion
-failure when building the devel/radare2 port.
-
-Introduced here: https://svnweb.freebsd.org/changeset/base/279161
-
-Index: lib/Transforms/Scalar/LoopRotation.cpp
-===================================================================
---- lib/Transforms/Scalar/LoopRotation.cpp
-+++ lib/Transforms/Scalar/LoopRotation.cpp
-@@ -535,6 +535,8 @@ bool LoopRotate::rotateLoop(Loop *L, bool Simplifi
- Loop *PredLoop = LI->getLoopFor(*PI);
- if (!PredLoop || PredLoop->contains(Exit))
- continue;
-+ if (isa<IndirectBrInst>((*PI)->getTerminator()))
-+ continue;
- SplitLatchEdge |= L->getLoopLatch() == *PI;
- BasicBlock *ExitSplit = SplitCriticalEdge(*PI, Exit, this);
- ExitSplit->moveBefore(Exit);
-Index: test/Transforms/LoopRotate/crash.ll
-===================================================================
---- test/Transforms/LoopRotate/crash.ll
-+++ test/Transforms/LoopRotate/crash.ll
-@@ -153,3 +153,21 @@ entry:
- "5": ; preds = %"3", %entry
- ret void
- }
-+
-+; PR21968
-+define void @test8(i1 %C, i8* %P) #0 {
-+entry:
-+ br label %for.cond
-+
-+for.cond: ; preds = %for.inc, %entry
-+ br i1 %C, label %l_bad, label %for.body
-+
-+for.body: ; preds = %for.cond
-+ indirectbr i8* %P, [label %for.inc, label %l_bad]
-+
-+for.inc: ; preds = %for.body
-+ br label %for.cond
-+
-+l_bad: ; preds = %for.body, %for.cond
-+ ret void
-+}
OpenPOWER on IntegriCloud