diff --git a/llvm/lib/Analysis/MemoryBuiltins.cpp b/llvm/lib/Analysis/MemoryBuiltins.cpp index 839fab3dbad2c..91501b04448e4 100644 --- a/llvm/lib/Analysis/MemoryBuiltins.cpp +++ b/llvm/lib/Analysis/MemoryBuiltins.cpp @@ -1014,7 +1014,7 @@ SizeOffsetEvalType ObjectSizeOffsetEvaluator::compute(Value *V) { // Erase any instructions we inserted as part of the traversal. for (Instruction *I : InsertedInstructions) { - I->replaceAllUsesWith(UndefValue::get(I->getType())); + I->replaceAllUsesWith(PoisonValue::get(I->getType())); I->eraseFromParent(); } } @@ -1161,10 +1161,10 @@ SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitPHINode(PHINode &PHI) { SizeOffsetEvalType EdgeData = compute_(PHI.getIncomingValue(i)); if (!bothKnown(EdgeData)) { - OffsetPHI->replaceAllUsesWith(UndefValue::get(IntTy)); + OffsetPHI->replaceAllUsesWith(PoisonValue::get(IntTy)); OffsetPHI->eraseFromParent(); InsertedInstructions.erase(OffsetPHI); - SizePHI->replaceAllUsesWith(UndefValue::get(IntTy)); + SizePHI->replaceAllUsesWith(PoisonValue::get(IntTy)); SizePHI->eraseFromParent(); InsertedInstructions.erase(SizePHI); return unknown(); diff --git a/llvm/lib/Transforms/IPO/MergeFunctions.cpp b/llvm/lib/Transforms/IPO/MergeFunctions.cpp index bb85dde46ae2b..b850591b4aa65 100644 --- a/llvm/lib/Transforms/IPO/MergeFunctions.cpp +++ b/llvm/lib/Transforms/IPO/MergeFunctions.cpp @@ -491,7 +491,7 @@ static Value *createCast(IRBuilder<> &Builder, Value *V, Type *DestTy) { if (SrcTy->isStructTy()) { assert(DestTy->isStructTy()); assert(SrcTy->getStructNumElements() == DestTy->getStructNumElements()); - Value *Result = UndefValue::get(DestTy); + Value *Result = PoisonValue::get(DestTy); for (unsigned int I = 0, E = SrcTy->getStructNumElements(); I < E; ++I) { Value *Element = createCast( Builder, Builder.CreateExtractValue(V, makeArrayRef(I)), diff --git a/llvm/lib/Transforms/IPO/PruneEH.cpp b/llvm/lib/Transforms/IPO/PruneEH.cpp index 288c9c1c5be1b..e0836a9fd6990 100644 --- a/llvm/lib/Transforms/IPO/PruneEH.cpp +++ b/llvm/lib/Transforms/IPO/PruneEH.cpp @@ -243,7 +243,7 @@ static void DeleteBasicBlock(BasicBlock *BB, CallGraphUpdater &CGU) { } if (!I->use_empty()) - I->replaceAllUsesWith(UndefValue::get(I->getType())); + I->replaceAllUsesWith(PoisonValue::get(I->getType())); } if (TokenInst) { diff --git a/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp b/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp index 64ec63a7dac08..898a213d08497 100644 --- a/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp +++ b/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp @@ -2015,7 +2015,7 @@ void DevirtModule::scanTypeCheckedLoadUsers(Function *TypeCheckedLoadFunc) { // (although this is unlikely). In that case, explicitly build a pair and // RAUW it. if (!CI->use_empty()) { - Value *Pair = UndefValue::get(CI->getType()); + Value *Pair = PoisonValue::get(CI->getType()); IRBuilder<> B(CI); Pair = B.CreateInsertValue(Pair, LoadedValue, {0}); Pair = B.CreateInsertValue(Pair, TypeTestCall, {1}); diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp index e60e77efdd76c..67ef2e895b6c0 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp @@ -795,7 +795,7 @@ static CallInst *canonicalizeConstantArg0ToArg1(CallInst &Call) { /// \p Result and a constant \p Overflow value. static Instruction *createOverflowTuple(IntrinsicInst *II, Value *Result, Constant *Overflow) { - Constant *V[] = {UndefValue::get(Result->getType()), Overflow}; + Constant *V[] = {PoisonValue::get(Result->getType()), Overflow}; StructType *ST = cast(II->getType()); Constant *Struct = ConstantStruct::get(ST, V); return InsertValueInst::Create(Struct, Result, 0); diff --git a/llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp b/llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp index 49bad10b8f30b..5667eefabad56 100644 --- a/llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp +++ b/llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp @@ -1212,7 +1212,7 @@ struct TransformDFA { PhiToRemove.push_back(Phi); } for (PHINode *PN : PhiToRemove) { - PN->replaceAllUsesWith(UndefValue::get(PN->getType())); + PN->replaceAllUsesWith(PoisonValue::get(PN->getType())); PN->eraseFromParent(); } return; diff --git a/llvm/lib/Transforms/Scalar/LoopDistribute.cpp b/llvm/lib/Transforms/Scalar/LoopDistribute.cpp index 0f1e119012121..03a10cb36bb66 100644 --- a/llvm/lib/Transforms/Scalar/LoopDistribute.cpp +++ b/llvm/lib/Transforms/Scalar/LoopDistribute.cpp @@ -230,7 +230,7 @@ class InstPartition { // having to update as many def-use and use-def chains. for (auto *Inst : reverse(Unused)) { if (!Inst->use_empty()) - Inst->replaceAllUsesWith(UndefValue::get(Inst->getType())); + Inst->replaceAllUsesWith(PoisonValue::get(Inst->getType())); Inst->eraseFromParent(); } } diff --git a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp index 1724f11bd7e28..88d6a7aff3c9b 100644 --- a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp +++ b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp @@ -345,7 +345,7 @@ INITIALIZE_PASS_END(LoopIdiomRecognizeLegacyPass, "loop-idiom", Pass *llvm::createLoopIdiomPass() { return new LoopIdiomRecognizeLegacyPass(); } static void deleteDeadInstruction(Instruction *I) { - I->replaceAllUsesWith(UndefValue::get(I->getType())); + I->replaceAllUsesWith(PoisonValue::get(I->getType())); I->eraseFromParent(); } diff --git a/llvm/lib/Transforms/Scalar/Reassociate.cpp b/llvm/lib/Transforms/Scalar/Reassociate.cpp index ed46038542cbb..da17379793050 100644 --- a/llvm/lib/Transforms/Scalar/Reassociate.cpp +++ b/llvm/lib/Transforms/Scalar/Reassociate.cpp @@ -1073,7 +1073,7 @@ static BinaryOperator *ConvertShiftToMul(Instruction *Shl) { BinaryOperator *Mul = BinaryOperator::CreateMul(Shl->getOperand(0), MulCst, "", Shl); - Shl->setOperand(0, UndefValue::get(Shl->getType())); // Drop use of op. + Shl->setOperand(0, PoisonValue::get(Shl->getType())); // Drop use of op. Mul->takeName(Shl); // Everyone now refers to the mul instruction. diff --git a/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp b/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp index 9cb305e44469c..27c04177e894d 100644 --- a/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp +++ b/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp @@ -526,7 +526,7 @@ void TailRecursionEliminator::createTailRecurseLoopHeader(CallInst *CI) { } // If the function doen't return void, create the RetPN and RetKnownPN PHI - // nodes to track our return value. We initialize RetPN with undef and + // nodes to track our return value. We initialize RetPN with poison and // RetKnownPN with false since we can't know our return value at function // entry. Type *RetType = F.getReturnType(); @@ -535,7 +535,7 @@ void TailRecursionEliminator::createTailRecurseLoopHeader(CallInst *CI) { RetPN = PHINode::Create(RetType, 2, "ret.tr", InsertPos); RetKnownPN = PHINode::Create(BoolType, 2, "ret.known.tr", InsertPos); - RetPN->addIncoming(UndefValue::get(RetType), NewEntry); + RetPN->addIncoming(PoisonValue::get(RetType), NewEntry); RetKnownPN->addIncoming(ConstantInt::getFalse(BoolType), NewEntry); } diff --git a/llvm/test/Transforms/DFAJumpThreading/dfa-jump-threading-transform.ll b/llvm/test/Transforms/DFAJumpThreading/dfa-jump-threading-transform.ll index 360f8053ebf6f..c7c1cc57dc29b 100644 --- a/llvm/test/Transforms/DFAJumpThreading/dfa-jump-threading-transform.ll +++ b/llvm/test/Transforms/DFAJumpThreading/dfa-jump-threading-transform.ll @@ -10,7 +10,7 @@ define i32 @test1(i32 %num) { ; CHECK-NEXT: br label [[FOR_BODY:%.*]] ; CHECK: for.body: ; CHECK-NEXT: [[COUNT:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[FOR_INC:%.*]] ] -; CHECK-NEXT: [[STATE:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ undef, [[FOR_INC]] ] +; CHECK-NEXT: [[STATE:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ poison, [[FOR_INC]] ] ; CHECK-NEXT: switch i32 [[STATE]], label [[FOR_INC_JT1:%.*]] [ ; CHECK-NEXT: i32 1, label [[CASE1:%.*]] ; CHECK-NEXT: i32 2, label [[CASE2:%.*]] @@ -107,7 +107,7 @@ define i32 @test2(i32 %init) { ; CHECK-NEXT: [[STATE_1_JT1:%.*]] = phi i32 [ 1, [[LOOP_1_BACKEDGE:%.*]] ], [ 1, [[LOOP_1_BACKEDGE_JT4:%.*]] ], [ 1, [[LOOP_1_BACKEDGE_JT2:%.*]] ] ; CHECK-NEXT: br label [[LOOP_2_JT1:%.*]] ; CHECK: loop.2: -; CHECK-NEXT: [[STATE_2:%.*]] = phi i32 [ [[STATE_1]], [[LOOP_1]] ], [ undef, [[LOOP_2_BACKEDGE:%.*]] ] +; CHECK-NEXT: [[STATE_2:%.*]] = phi i32 [ [[STATE_1]], [[LOOP_1]] ], [ poison, [[LOOP_2_BACKEDGE:%.*]] ] ; CHECK-NEXT: br label [[LOOP_3:%.*]] ; CHECK: loop.2.jt2: ; CHECK-NEXT: [[STATE_2_JT2:%.*]] = phi i32 [ [[STATE_1_JT2]], [[LOOP_1_JT2]] ] diff --git a/llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll b/llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll index 8768b6e631267..b7e5f1894803c 100644 --- a/llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll +++ b/llvm/test/Transforms/DFAJumpThreading/dfa-unfold-select.ll @@ -13,7 +13,7 @@ define i32 @test1(i32 %num) { ; CHECK-NEXT: br label [[FOR_BODY:%.*]] ; CHECK: for.body: ; CHECK-NEXT: [[COUNT:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[FOR_INC:%.*]] ] -; CHECK-NEXT: [[STATE:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ undef, [[FOR_INC]] ] +; CHECK-NEXT: [[STATE:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ poison, [[FOR_INC]] ] ; CHECK-NEXT: switch i32 [[STATE]], label [[FOR_INC_JT1:%.*]] [ ; CHECK-NEXT: i32 1, label [[CASE1:%.*]] ; CHECK-NEXT: i32 2, label [[CASE2:%.*]] @@ -89,7 +89,7 @@ define i32 @test2(i32 %num) { ; CHECK-NEXT: br label [[FOR_BODY:%.*]] ; CHECK: for.body: ; CHECK-NEXT: [[COUNT:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[FOR_INC:%.*]] ] -; CHECK-NEXT: [[STATE:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ undef, [[FOR_INC]] ] +; CHECK-NEXT: [[STATE:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ poison, [[FOR_INC]] ] ; CHECK-NEXT: switch i32 [[STATE]], label [[FOR_INC_JT1:%.*]] [ ; CHECK-NEXT: i32 1, label [[CASE1:%.*]] ; CHECK-NEXT: i32 2, label [[CASE2:%.*]] @@ -190,7 +190,7 @@ define i32 @test3(i32 %num) { ; CHECK-NEXT: br label [[FOR_BODY:%.*]] ; CHECK: for.body: ; CHECK-NEXT: [[COUNT:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[FOR_INC:%.*]] ] -; CHECK-NEXT: [[STATE:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ undef, [[FOR_INC]] ] +; CHECK-NEXT: [[STATE:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ poison, [[FOR_INC]] ] ; CHECK-NEXT: switch i32 [[STATE]], label [[FOR_INC_JT1:%.*]] [ ; CHECK-NEXT: i32 1, label [[CASE1:%.*]] ; CHECK-NEXT: i32 2, label [[CASE2:%.*]] diff --git a/llvm/test/Transforms/InstCombine/sadd-with-overflow.ll b/llvm/test/Transforms/InstCombine/sadd-with-overflow.ll index ec48a4c7351c6..9f1435a2cff55 100644 --- a/llvm/test/Transforms/InstCombine/sadd-with-overflow.ll +++ b/llvm/test/Transforms/InstCombine/sadd-with-overflow.ll @@ -20,7 +20,7 @@ define { i32, i1 } @simple_fold(i32 %x) { define { i32, i1 } @fold_mixed_signs(i32 %x) { ; CHECK-LABEL: @fold_mixed_signs( ; CHECK-NEXT: [[B:%.*]] = add nsw i32 [[X:%.*]], 6 -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[B]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[B]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %a = add nsw i32 %x, 13 diff --git a/llvm/test/Transforms/InstCombine/ssub-with-overflow.ll b/llvm/test/Transforms/InstCombine/ssub-with-overflow.ll index 2a6dfee259d6f..16a4409e585b6 100644 --- a/llvm/test/Transforms/InstCombine/ssub-with-overflow.ll +++ b/llvm/test/Transforms/InstCombine/ssub-with-overflow.ll @@ -22,7 +22,7 @@ define { i32, i1 } @simple_fold(i32 %x) { define { i32, i1 } @fold_mixed_signs(i32 %x) { ; CHECK-LABEL: @fold_mixed_signs( ; CHECK-NEXT: [[B:%.*]] = add nsw i32 [[X:%.*]], -6 -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[B]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[B]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %a = sub nsw i32 %x, 13 diff --git a/llvm/test/Transforms/InstCombine/uadd-with-overflow.ll b/llvm/test/Transforms/InstCombine/uadd-with-overflow.ll index 71f886edd7c66..39e6db15f4a14 100644 --- a/llvm/test/Transforms/InstCombine/uadd-with-overflow.ll +++ b/llvm/test/Transforms/InstCombine/uadd-with-overflow.ll @@ -31,7 +31,7 @@ define { i8, i1 } @fold_on_constant_add_no_overflow(i8 %x) { define { i8, i1 } @no_fold_on_constant_add_overflow(i8 %x) { ; CHECK-LABEL: @no_fold_on_constant_add_overflow( -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i8, i1 } { i8 undef, i1 true }, i8 [[X:%.*]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i8, i1 } { i8 poison, i1 true }, i8 [[X:%.*]], 0 ; CHECK-NEXT: ret { i8, i1 } [[TMP1]] ; %a = add nuw i8 %x, 200 diff --git a/llvm/test/Transforms/InstCombine/with_overflow.ll b/llvm/test/Transforms/InstCombine/with_overflow.ll index 2c2bde36082bc..b692530554556 100644 --- a/llvm/test/Transforms/InstCombine/with_overflow.ll +++ b/llvm/test/Transforms/InstCombine/with_overflow.ll @@ -108,7 +108,7 @@ define { i32, i1 } @saddtest_nsw(i8 %a, i8 %b) { ; CHECK-NEXT: [[AA:%.*]] = sext i8 [[A:%.*]] to i32 ; CHECK-NEXT: [[BB:%.*]] = sext i8 [[B:%.*]] to i32 ; CHECK-NEXT: [[X:%.*]] = add nsw i32 [[AA]], [[BB]] -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[X]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[X]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %aa = sext i8 %a to i32 @@ -122,7 +122,7 @@ define { i32, i1 } @uaddtest_nuw(i32 %a, i32 %b) { ; CHECK-NEXT: [[AA:%.*]] = and i32 [[A:%.*]], 2147483647 ; CHECK-NEXT: [[BB:%.*]] = and i32 [[B:%.*]], 2147483647 ; CHECK-NEXT: [[X:%.*]] = add nuw i32 [[AA]], [[BB]] -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[X]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[X]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %aa = and i32 %a, 2147483647 @@ -136,7 +136,7 @@ define { i32, i1 } @ssubtest_nsw(i8 %a, i8 %b) { ; CHECK-NEXT: [[AA:%.*]] = sext i8 [[A:%.*]] to i32 ; CHECK-NEXT: [[BB:%.*]] = sext i8 [[B:%.*]] to i32 ; CHECK-NEXT: [[X:%.*]] = sub nsw i32 [[AA]], [[BB]] -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[X]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[X]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %aa = sext i8 %a to i32 @@ -150,7 +150,7 @@ define { i32, i1 } @usubtest_nuw(i32 %a, i32 %b) { ; CHECK-NEXT: [[AA:%.*]] = or i32 [[A:%.*]], -2147483648 ; CHECK-NEXT: [[BB:%.*]] = and i32 [[B:%.*]], 2147483647 ; CHECK-NEXT: [[X:%.*]] = sub nuw i32 [[AA]], [[BB]] -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[X]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[X]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %aa = or i32 %a, 2147483648 @@ -164,7 +164,7 @@ define { i32, i1 } @smultest1_nsw(i32 %a, i32 %b) { ; CHECK-NEXT: [[AA:%.*]] = and i32 [[A:%.*]], 4095 ; CHECK-NEXT: [[BB:%.*]] = and i32 [[B:%.*]], 524287 ; CHECK-NEXT: [[X:%.*]] = mul nuw nsw i32 [[AA]], [[BB]] -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[X]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[X]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %aa = and i32 %a, 4095 ; 0xfff @@ -178,7 +178,7 @@ define { i32, i1 } @smultest2_nsw(i32 %a, i32 %b) { ; CHECK-NEXT: [[AA:%.*]] = ashr i32 [[A:%.*]], 16 ; CHECK-NEXT: [[BB:%.*]] = ashr i32 [[B:%.*]], 16 ; CHECK-NEXT: [[X:%.*]] = mul nsw i32 [[AA]], [[BB]] -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[X]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[X]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %aa = ashr i32 %a, 16 @@ -205,7 +205,7 @@ define { i32, i1 } @umultest_nuw(i32 %a, i32 %b) { ; CHECK-NEXT: [[AA:%.*]] = and i32 [[A:%.*]], 65535 ; CHECK-NEXT: [[BB:%.*]] = and i32 [[B:%.*]], 65535 ; CHECK-NEXT: [[X:%.*]] = mul nuw i32 [[AA]], [[BB]] -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[X]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[X]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %aa = and i32 %a, 65535 ; 0xffff @@ -274,7 +274,7 @@ define { i32, i1 } @umultest5(i32 %x, i32 %y) nounwind { ; CHECK-NEXT: [[OR_X:%.*]] = or i32 [[X:%.*]], -2147483648 ; CHECK-NEXT: [[OR_Y:%.*]] = or i32 [[Y:%.*]], -2147483648 ; CHECK-NEXT: [[MUL:%.*]] = mul i32 [[OR_X]], [[OR_Y]] -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 true }, i32 [[MUL]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 true }, i32 [[MUL]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %or_x = or i32 %x, 2147483648 @@ -345,7 +345,7 @@ define { i32, i1 } @ssubtest_reorder(i8 %a) { ; CHECK-LABEL: @ssubtest_reorder( ; CHECK-NEXT: [[AA:%.*]] = sext i8 [[A:%.*]] to i32 ; CHECK-NEXT: [[X:%.*]] = sub nsw i32 0, [[AA]] -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[X]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[X]], 0 ; CHECK-NEXT: ret { i32, i1 } [[TMP1]] ; %aa = sext i8 %a to i32 @@ -355,7 +355,7 @@ define { i32, i1 } @ssubtest_reorder(i8 %a) { define { i32, i1 } @never_overflows_ssub_test0(i32 %a) { ; CHECK-LABEL: @never_overflows_ssub_test0( -; CHECK-NEXT: [[X:%.*]] = insertvalue { i32, i1 } { i32 undef, i1 false }, i32 [[A:%.*]], 0 +; CHECK-NEXT: [[X:%.*]] = insertvalue { i32, i1 } { i32 poison, i1 false }, i32 [[A:%.*]], 0 ; CHECK-NEXT: ret { i32, i1 } [[X]] ; %x = call { i32, i1 } @llvm.ssub.with.overflow.i32(i32 %a, i32 0) @@ -537,7 +537,7 @@ define { i32, i1 } @umul_canonicalize_constant_arg0(i32 %x) nounwind { define { i8, i1 } @uadd_always_overflow(i8 %x) nounwind { ; CHECK-LABEL: @uadd_always_overflow( ; CHECK-NEXT: [[TMP1:%.*]] = and i8 [[X:%.*]], 63 -; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { i8, i1 } { i8 undef, i1 true }, i8 [[TMP1]], 0 +; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { i8, i1 } { i8 poison, i1 true }, i8 [[TMP1]], 0 ; CHECK-NEXT: ret { i8, i1 } [[TMP2]] ; %y = or i8 %x, 192 @@ -549,7 +549,7 @@ define { i8, i1 } @usub_always_overflow(i8 %x) nounwind { ; CHECK-LABEL: @usub_always_overflow( ; CHECK-NEXT: [[Y:%.*]] = or i8 [[X:%.*]], 64 ; CHECK-NEXT: [[A:%.*]] = sub nsw i8 63, [[Y]] -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i8, i1 } { i8 undef, i1 true }, i8 [[A]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i8, i1 } { i8 poison, i1 true }, i8 [[A]], 0 ; CHECK-NEXT: ret { i8, i1 } [[TMP1]] ; %y = or i8 %x, 64 @@ -560,7 +560,7 @@ define { i8, i1 } @usub_always_overflow(i8 %x) nounwind { define { i8, i1 } @umul_always_overflow(i8 %x) nounwind { ; CHECK-LABEL: @umul_always_overflow( ; CHECK-NEXT: [[A:%.*]] = shl i8 [[X:%.*]], 1 -; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i8, i1 } { i8 undef, i1 true }, i8 [[A]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i8, i1 } { i8 poison, i1 true }, i8 [[A]], 0 ; CHECK-NEXT: ret { i8, i1 } [[TMP1]] ; %y = or i8 %x, 128 @@ -572,7 +572,7 @@ define { i8, i1 } @sadd_always_overflow(i8 %x) nounwind { ; CHECK-LABEL: @sadd_always_overflow( ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.smax.i8(i8 [[X:%.*]], i8 100) ; CHECK-NEXT: [[A:%.*]] = add nuw i8 [[TMP1]], 28 -; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { i8, i1 } { i8 undef, i1 true }, i8 [[A]], 0 +; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { i8, i1 } { i8 poison, i1 true }, i8 [[A]], 0 ; CHECK-NEXT: ret { i8, i1 } [[TMP2]] ; %c = icmp sgt i8 %x, 100 @@ -585,7 +585,7 @@ define { i8, i1 } @ssub_always_overflow(i8 %x) nounwind { ; CHECK-LABEL: @ssub_always_overflow( ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.smax.i8(i8 [[X:%.*]], i8 29) ; CHECK-NEXT: [[A:%.*]] = sub nuw i8 -100, [[TMP1]] -; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { i8, i1 } { i8 undef, i1 true }, i8 [[A]], 0 +; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { i8, i1 } { i8 poison, i1 true }, i8 [[A]], 0 ; CHECK-NEXT: ret { i8, i1 } [[TMP2]] ; %c = icmp sgt i8 %x, 29 diff --git a/llvm/test/Transforms/MergeFunc/mergefunc-struct-return.ll b/llvm/test/Transforms/MergeFunc/mergefunc-struct-return.ll index 14db39995e72b..4c68ee3df055a 100644 --- a/llvm/test/Transforms/MergeFunc/mergefunc-struct-return.ll +++ b/llvm/test/Transforms/MergeFunc/mergefunc-struct-return.ll @@ -27,7 +27,7 @@ define %kv2 @fn2() { ; CHECK: %1 = tail call %kv1 @fn1() ; CHECK: %2 = extractvalue %kv1 %1, 0 ; CHECK: %3 = bitcast i32* %2 to i8* -; CHECK: %4 = insertvalue %kv2 undef, i8* %3, 0 +; CHECK: %4 = insertvalue %kv2 poison, i8* %3, 0 %tmp = alloca %kv2 %v1 = getelementptr %kv2, %kv2* %tmp, i32 0, i32 0 store i8* null, i8** %v1 diff --git a/llvm/test/Transforms/TailCallElim/2010-06-26-MultipleReturnValues.ll b/llvm/test/Transforms/TailCallElim/2010-06-26-MultipleReturnValues.ll index 0cd8d8a5edf25..517f93d08648d 100644 --- a/llvm/test/Transforms/TailCallElim/2010-06-26-MultipleReturnValues.ll +++ b/llvm/test/Transforms/TailCallElim/2010-06-26-MultipleReturnValues.ll @@ -17,7 +17,7 @@ return: ; preds = %entry ; CHECK-LABEL: define i32 @test1_constants( ; CHECK: tailrecurse: -; CHECK: %ret.tr = phi i32 [ undef, %entry ], [ %current.ret.tr, %body ] +; CHECK: %ret.tr = phi i32 [ poison, %entry ], [ %current.ret.tr, %body ] ; CHECK: %ret.known.tr = phi i1 [ false, %entry ], [ true, %body ] ; CHECK: body: ; CHECK-NOT: %recurse @@ -47,7 +47,7 @@ declare i32 @test2_helper() ; CHECK-LABEL: define i32 @test2_non_constants( ; CHECK: tailrecurse: -; CHECK: %ret.tr = phi i32 [ undef, %entry ], [ %current.ret.tr, %body ] +; CHECK: %ret.tr = phi i32 [ poison, %entry ], [ %current.ret.tr, %body ] ; CHECK: %ret.known.tr = phi i1 [ false, %entry ], [ true, %body ] ; CHECK: body: ; CHECK-NOT: %recurse @@ -94,7 +94,7 @@ declare i32 @test3_helper() ; CHECK-LABEL: define i32 @test3_mixed( ; CHECK: tailrecurse: -; CHECK: %ret.tr = phi i32 [ undef, %entry ], [ %current.ret.tr, %case1 ], [ %current.ret.tr1, %case2 ], [ %ret.tr, %default ] +; CHECK: %ret.tr = phi i32 [ poison, %entry ], [ %current.ret.tr, %case1 ], [ %current.ret.tr1, %case2 ], [ %ret.tr, %default ] ; CHECK: %ret.known.tr = phi i1 [ false, %entry ], [ true, %case1 ], [ true, %case2 ], [ %ret.known.tr, %default ] ; CHECK: case1: ; CHECK-NOT: %recurse diff --git a/llvm/test/Transforms/TailCallElim/accum_recursion.ll b/llvm/test/Transforms/TailCallElim/accum_recursion.ll index 856d064ebbb2d..2a805fb82b942 100644 --- a/llvm/test/Transforms/TailCallElim/accum_recursion.ll +++ b/llvm/test/Transforms/TailCallElim/accum_recursion.ll @@ -166,7 +166,7 @@ declare i32 @test6_helper() ; CHECK-LABEL: define i32 @test6_multiple_returns( ; CHECK: tailrecurse: ; CHECK: %accumulator.tr = phi i32 [ %accumulator.tr, %case99 ], [ 0, %entry ], [ %accumulate, %default ] -; CHECK: %ret.tr = phi i32 [ undef, %entry ], [ %current.ret.tr, %case99 ], [ %ret.tr, %default ] +; CHECK: %ret.tr = phi i32 [ poison, %entry ], [ %current.ret.tr, %case99 ], [ %ret.tr, %default ] ; CHECK: %ret.known.tr = phi i1 [ false, %entry ], [ true, %case99 ], [ %ret.known.tr, %default ] ; CHECK: case0: ; CHECK: %accumulator.ret.tr2 = add i32 %accumulator.tr, %helper diff --git a/llvm/test/Transforms/TailCallElim/basic.ll b/llvm/test/Transforms/TailCallElim/basic.ll index 5ddb54e38e688..81c9dc837f7f6 100644 --- a/llvm/test/Transforms/TailCallElim/basic.ll +++ b/llvm/test/Transforms/TailCallElim/basic.ll @@ -48,7 +48,7 @@ endif.0: ; preds = %entry define i32 @test3(i32 %c) { ; CHECK: i32 @test3 ; CHECK: tailrecurse: -; CHECK: %ret.tr = phi i32 [ undef, %entry ], [ %current.ret.tr, %else ] +; CHECK: %ret.tr = phi i32 [ poison, %entry ], [ %current.ret.tr, %else ] ; CHECK: %ret.known.tr = phi i1 [ false, %entry ], [ true, %else ] ; CHECK: else: ; CHECK-NOT: call diff --git a/llvm/test/Transforms/WholeProgramDevirt/expand-check.ll b/llvm/test/Transforms/WholeProgramDevirt/expand-check.ll index 16b62db163cc7..16cfd454eb8d8 100644 --- a/llvm/test/Transforms/WholeProgramDevirt/expand-check.ll +++ b/llvm/test/Transforms/WholeProgramDevirt/expand-check.ll @@ -50,7 +50,7 @@ define {i8*, i1} @ret(i8* %vtablei8) { ; CHECK: [[BC2:%[^ ]*]] = bitcast i8* [[GEP2]] to i8** ; CHECK: [[LOAD2:%[^ ]*]] = load i8*, i8** [[BC2]] ; CHECK: [[TT2:%[^ ]*]] = call i1 @llvm.type.test(i8* [[VT2]], metadata !"typeid") - ; CHECK: [[I1:%[^ ]*]] = insertvalue { i8*, i1 } undef, i8* [[LOAD2]], 0 + ; CHECK: [[I1:%[^ ]*]] = insertvalue { i8*, i1 } poison, i8* [[LOAD2]], 0 ; CHECK: [[I2:%[^ ]*]] = insertvalue { i8*, i1 } %5, i1 [[TT2]], 1 %pair = call {i8*, i1} @llvm.type.checked.load(i8* %vtablei8, i32 1, metadata !"typeid") ; CHECK: ret { i8*, i1 } [[I2]]