summaryrefslogtreecommitdiff
path: root/test/Transforms/LoopSimplify
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2014-02-11 12:52:27 +0000
committerChandler Carruth <chandlerc@gmail.com>2014-02-11 12:52:27 +0000
commit8615ab4a4ac99e6b57714aa34c2ecbb67414137d (patch)
tree1976c55935a47d9018b269462d75f66aac47a0c0 /test/Transforms/LoopSimplify
parentd3abd0b648dd795dc481cc06169714738eb9bbdc (diff)
downloadllvm-8615ab4a4ac99e6b57714aa34c2ecbb67414137d.tar.gz
llvm-8615ab4a4ac99e6b57714aa34c2ecbb67414137d.tar.bz2
llvm-8615ab4a4ac99e6b57714aa34c2ecbb67414137d.tar.xz
[LPM] Switch LICM to actively use LCSSA in addition to preserving it.
Fixes PR18753 and PR18782. This is necessary for LICM to preserve LCSSA correctly and efficiently. There is still some active discussion about whether we should be using LCSSA, but we can't just immediately stop using it and we *need* LICM to preserve it while we are using it. We can restore the old SSAUpdater driven code if and when there is a serious effort to remove the reliance on LCSSA from all of the loop passes. However, this also serves as a great example of why LCSSA is very nice to have. This change significantly simplifies the process of sinking instructions for LICM, and makes it quite a bit less expensive. It wouldn't even be as complex as it is except that I had to start the process of removing the big recursive LCSSA formation hammer in order to switch even this much of the re-forming code to asserting that LCSSA was preserved. I'll fully remove that next just to tidy things up until the LCSSA debate settles one way or the other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201148 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LoopSimplify')
-rw-r--r--test/Transforms/LoopSimplify/ashr-crash.ll6
1 files changed, 3 insertions, 3 deletions
diff --git a/test/Transforms/LoopSimplify/ashr-crash.ll b/test/Transforms/LoopSimplify/ashr-crash.ll
index 69d1ca69a4..c58903d49d 100644
--- a/test/Transforms/LoopSimplify/ashr-crash.ll
+++ b/test/Transforms/LoopSimplify/ashr-crash.ll
@@ -29,9 +29,9 @@ target triple = "x86_64-apple-macosx"
; CHECK-LABEL: entry:
; CHECK-LABEL: for.cond1.preheader:
; CHECK-LABEL: for.body3:
-; CHECK: %cmp4
-; CHECK: %conv = zext i1 %cmp4 to i32
-; CHECK: %xor = xor i32 %conv6, 1
+; CHECK: %cmp4.le.le
+; CHECK: %conv.le.le = zext i1 %cmp4.le.le to i32
+; CHECK: %xor.le.le = xor i32 %conv6.le.le, 1
define void @foo() {
entry:
br label %for.cond