[llvm] r318551 - [LICM] Fix PR35342
Jun Bum Lim via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 17 12:38:26 PST 2017
Author: junbuml
Date: Fri Nov 17 12:38:25 2017
New Revision: 318551
URL: http://llvm.org/viewvc/llvm-project?rev=318551&view=rev
Log:
[LICM] Fix PR35342
Summary: This change fix PR35342 by replacing only the current use with undef in unreachable blocks.
Reviewers: efriedma, mcrosier, igor-laevsky
Reviewed By: efriedma
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D40184
Added:
llvm/trunk/test/Transforms/LICM/pr35342.ll
Modified:
llvm/trunk/lib/Transforms/Scalar/LICM.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/LICM.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LICM.cpp?rev=318551&r1=318550&r2=318551&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/LICM.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/LICM.cpp Fri Nov 17 12:38:25 2017
@@ -906,7 +906,7 @@ static bool sink(Instruction &I, LoopInf
continue;
if (!DT->isReachableFromEntry(User->getParent())) {
- User->replaceUsesOfWith(&I, UndefValue::get(I.getType()));
+ U = UndefValue::get(I.getType());
continue;
}
Added: llvm/trunk/test/Transforms/LICM/pr35342.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LICM/pr35342.ll?rev=318551&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/LICM/pr35342.ll (added)
+++ llvm/trunk/test/Transforms/LICM/pr35342.ll Fri Nov 17 12:38:25 2017
@@ -0,0 +1,26 @@
+; RUN: opt -licm -S < %s | FileCheck %s
+
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128-ni:1"
+target triple = "x86_64-unknown-linux-gnu"
+
+; CHECK-LABEL: @f1
+; CHECK-LABEL: bci_524:
+; CHECK: add i32 undef, undef
+define void @f1(i32 %v) {
+not_zero.lr.ph:
+ br label %not_zero
+
+not_zero:
+ br i1 undef, label %bci_748 , label %bci_314
+
+bci_314:
+ %0 = select i1 undef, i32 undef, i32 undef
+ br label %not_zero
+
+bci_524: ; No predecessors!
+ %add = add i32 %0, %0
+ br label %bci_748
+
+bci_748:
+ ret void
+}
More information about the llvm-commits
mailing list