From 8615ab4a4ac99e6b57714aa34c2ecbb67414137d Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Tue, 11 Feb 2014 12:52:27 +0000 Subject: [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 --- test/Transforms/LoopSimplify/ashr-crash.ll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'test/Transforms/LoopSimplify') 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 -- cgit v1.2.3