mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-26 05:00:26 +00:00
Fixes PR9730: indvars: An asserting value handle still pointed to this value
Modified LinearFunctionTestReplace to push the condition on the dead list instead of eagerly deleting it. This can cause unnecessary IV rewrites, which should have no effect on codegen and will not be an issue once we stop generating canonical IVs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130340 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e1cdf84ee5
commit
685f07fac2
@ -275,7 +275,7 @@ ICmpInst *IndVarSimplify::LinearFunctionTestReplace(Loop *L,
|
||||
// update the branch to use the new comparison; in the common case this
|
||||
// will make old comparison dead.
|
||||
BI->setCondition(Cond);
|
||||
RecursivelyDeleteTriviallyDeadInstructions(OrigCond);
|
||||
DeadInsts.push_back(OrigCond);
|
||||
|
||||
++NumLFTR;
|
||||
Changed = true;
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: opt < %s -indvars -S | grep icmp | grep next
|
||||
; RUN: opt < %s -indvars -S | FileCheck %s
|
||||
; PR4086
|
||||
declare void @foo()
|
||||
|
||||
@ -6,13 +6,14 @@ define void @test() {
|
||||
entry:
|
||||
br label %loop_body
|
||||
|
||||
loop_body:
|
||||
%i = phi float [ %nexti, %loop_body ], [ 0.0, %entry ]
|
||||
loop_body:
|
||||
%i = phi float [ %nexti, %loop_body ], [ 0.0, %entry ]
|
||||
tail call void @foo()
|
||||
%nexti = fadd float %i, 1.0
|
||||
%less = fcmp olt float %nexti, 2.0
|
||||
; CHECK: icmp ne i32 %{{[a-zA-Z$._0-9]+}}, 2
|
||||
%less = fcmp olt float %nexti, 2.0
|
||||
br i1 %less, label %loop_body, label %done
|
||||
|
||||
done:
|
||||
done:
|
||||
ret void
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user