summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorMichael Zolotukhin <mzolotukhin@apple.com>2016-08-06 01:48:51 +0000
committerMichael Zolotukhin <mzolotukhin@apple.com>2016-08-06 01:48:51 +0000
commit09cf304ebc3c75b32f919065e9f32b4fbef590ac (patch)
tree62cb5fdeee249514f03b6d00b7c25a2735d4194d /llvm
parente056aee9d98925dc1c2511933296f0ff9f63e196 (diff)
downloadbcm5719-llvm-09cf304ebc3c75b32f919065e9f32b4fbef590ac.tar.gz
bcm5719-llvm-09cf304ebc3c75b32f919065e9f32b4fbef590ac.zip
Revert "[LoopSimplify] Fix updating LCSSA after separating nested loops."
This reverts commit r277877. Try to appease clang-x64-ninja-win7 buildbot. llvm-svn: 277901
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Transforms/Utils/LoopSimplify.cpp15
-rw-r--r--llvm/test/Transforms/LoopSimplify/pr28272.ll34
2 files changed, 1 insertions, 48 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopSimplify.cpp b/llvm/lib/Transforms/Utils/LoopSimplify.cpp
index fc5781fdf30..2846e8f235b 100644
--- a/llvm/lib/Transforms/Utils/LoopSimplify.cpp
+++ b/llvm/lib/Transforms/Utils/LoopSimplify.cpp
@@ -376,21 +376,6 @@ static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader,
}
}
}
- // We also need to check exit blocks of the outer loop - it might be using
- // values from what now became an inner loop.
- SmallVector<BasicBlock*, 8> ExitBlocks;
- NewOuter->getExitBlocks(ExitBlocks);
- for (BasicBlock *ExitBB: ExitBlocks) {
- for (Instruction &I : *ExitBB) {
- for (Value *Op : I.operands()) {
- Instruction *OpI = dyn_cast<Instruction>(Op);
- if (!OpI || !L->contains(OpI))
- continue;
- WorklistSet.insert(OpI);
- }
- }
- }
-
SmallVector<Instruction *, 8> Worklist(WorklistSet.begin(),
WorklistSet.end());
formLCSSAForInstructions(Worklist, *DT, *LI);
diff --git a/llvm/test/Transforms/LoopSimplify/pr28272.ll b/llvm/test/Transforms/LoopSimplify/pr28272.ll
index e59d7636dca..49990f92cab 100644
--- a/llvm/test/Transforms/LoopSimplify/pr28272.ll
+++ b/llvm/test/Transforms/LoopSimplify/pr28272.ll
@@ -1,7 +1,7 @@
; RUN: opt < %s -lcssa -loop-unroll -S | FileCheck %s
target triple = "x86_64-unknown-linux-gnu"
-; PR28272, PR28825
+; PR28272
; When LoopSimplify separates nested loops, it might break LCSSA form: values
; from the original loop might be used in the outer loop. This test invokes
; loop-unroll, which calls loop-simplify before itself. If LCSSA is broken
@@ -74,35 +74,3 @@ loop2.if.false:
bb:
br label %loop2
}
-
-; When LoopSimplify separates nested loops, it might break LCSSA form: values
-; from the original loop might be used in exit blocks of the outer loop.
-; CHECK-LABEL: @foo3
-define void @foo3() {
-entry:
- br label %bb1
-
-bb1:
- br i1 undef, label %bb2, label %bb1
-
-bb2:
- %a = phi i32 [ undef, %bb1 ], [ %a, %bb3 ], [ undef, %bb5 ]
- br i1 undef, label %bb3, label %bb1
-
-bb3:
- %b = load i32*, i32** undef
- br i1 undef, label %bb2, label %bb4
-
-bb4:
- br i1 undef, label %bb5, label %bb6
-
-bb5:
- br i1 undef, label %bb2, label %bb4
-
-bb6:
- br i1 undef, label %bb_end, label %bb1
-
-bb_end:
- %x = getelementptr i32, i32* %b
- br label %bb_end
-}
OpenPOWER on IntegriCloud