mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[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 llvm-svn: 318551
This commit is contained in:
parent
b74fa89001
commit
515421b8ee
@ -906,7 +906,7 @@ static bool sink(Instruction &I, LoopInfo *LI, DominatorTree *DT,
|
||||
continue;
|
||||
|
||||
if (!DT->isReachableFromEntry(User->getParent())) {
|
||||
User->replaceUsesOfWith(&I, UndefValue::get(I.getType()));
|
||||
U = UndefValue::get(I.getType());
|
||||
continue;
|
||||
}
|
||||
|
||||
|
26
test/Transforms/LICM/pr35342.ll
Normal file
26
test/Transforms/LICM/pr35342.ll
Normal file
@ -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
|
||||
}
|
Loading…
Reference in New Issue
Block a user