diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/lib/Analysis/ScalarEvolution.cpp @@ -7196,7 +7196,7 @@ // to obey basic rules for definitions dominating uses which this // analysis depends on. if (!DT.isReachableFromEntry(I->getParent())) - return getUnknown(UndefValue::get(V->getType())); + return getUnknown(PoisonValue::get(V->getType())); } else if (ConstantInt *CI = dyn_cast(V)) return getConstant(CI); else if (GlobalAlias *GA = dyn_cast(V)) diff --git a/llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll b/llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll --- a/llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll +++ b/llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll @@ -389,9 +389,9 @@ ; CHECK-LABEL: 'unreachable_phi' ; CHECK-NEXT: Classifying expressions for: @unreachable_phi ; CHECK-NEXT: %p_58.addr.1 = phi i32 [ undef, %unreachable1 ], [ %sub2629, %unreachable2 ] -; CHECK-NEXT: --> undef U: full-set S: full-set +; CHECK-NEXT: --> poison U: full-set S: full-set ; CHECK-NEXT: %sub2629 = sub i32 %p_58.addr.1, 1 -; CHECK-NEXT: --> undef U: full-set S: full-set +; CHECK-NEXT: --> poison U: full-set S: full-set ; CHECK-NEXT: Determining loop execution counts for: @unreachable_phi ; entry: @@ -415,7 +415,7 @@ ; CHECK-NEXT: %p_58.addr.1 = phi i32 [ undef, %header ], [ %sub2629, %unreachable ] ; CHECK-NEXT: --> %p_58.addr.1 U: full-set S: full-set Exits: <> LoopDispositions: { %header: Variant } ; CHECK-NEXT: %sub2629 = sub i32 %p_58.addr.1, 1 -; CHECK-NEXT: --> undef U: full-set S: full-set +; CHECK-NEXT: --> poison U: full-set S: full-set ; CHECK-NEXT: Determining loop execution counts for: @unreachable_binop ; CHECK-NEXT: Loop %header: Unpredictable backedge-taken count. ; CHECK-NEXT: Loop %header: Unpredictable max backedge-taken count. diff --git a/llvm/test/Analysis/ScalarEvolution/unreachable-code.ll b/llvm/test/Analysis/ScalarEvolution/unreachable-code.ll --- a/llvm/test/Analysis/ScalarEvolution/unreachable-code.ll +++ b/llvm/test/Analysis/ScalarEvolution/unreachable-code.ll @@ -1,7 +1,7 @@ ; RUN: opt < %s -disable-output "-passes=print" 2>&1 | FileCheck %s ; CHECK: %t = add i64 %t, 1 -; CHECK: --> undef +; CHECK: --> poison define void @foo() { entry: