diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -2251,7 +2251,7 @@ // Also pass the return address of the remainder. SDValue FIPtr = DAG.CreateStackTemporary(RetVT); Entry.Node = FIPtr; - Entry.Ty = RetTy->getPointerTo(); + Entry.Ty = PointerType::getUnqual(RetTy->getContext()); Entry.IsSExt = isSigned; Entry.IsZExt = !isSigned; Args.push_back(Entry); @@ -2342,7 +2342,7 @@ // Pass the return address of sin. SDValue SinPtr = DAG.CreateStackTemporary(RetVT); Entry.Node = SinPtr; - Entry.Ty = RetTy->getPointerTo(); + Entry.Ty = PointerType::getUnqual(RetTy->getContext()); Entry.IsSExt = false; Entry.IsZExt = false; Args.push_back(Entry); @@ -2350,7 +2350,7 @@ // Also pass the return address of the cos. SDValue CosPtr = DAG.CreateStackTemporary(RetVT); Entry.Node = CosPtr; - Entry.Ty = RetTy->getPointerTo(); + Entry.Ty = PointerType::getUnqual(RetTy->getContext()); Entry.IsSExt = false; Entry.IsZExt = false; Args.push_back(Entry); diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp --- a/llvm/lib/IR/AutoUpgrade.cpp +++ b/llvm/lib/IR/AutoUpgrade.cpp @@ -2853,9 +2853,7 @@ auto *VecTy = cast(CI->getType()); Type *EltTy = VecTy->getElementType(); unsigned EltNum = VecTy->getNumElements(); - Value *Cast = Builder.CreateBitCast(CI->getArgOperand(0), - EltTy->getPointerTo()); - Value *Load = Builder.CreateLoad(EltTy, Cast); + Value *Load = Builder.CreateLoad(EltTy, CI->getArgOperand(0)); Type *I32Ty = Type::getInt32Ty(C); Rep = PoisonValue::get(VecTy); for (unsigned I = 0; I < EltNum; ++I) diff --git a/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp b/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp --- a/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp +++ b/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp @@ -706,7 +706,8 @@ Value *AsInt = Builder.CreatePtrToInt(Ptr, HVC.getIntTy(), "pti"); Value *Mask = HVC.getConstInt(-Alignment); Value *And = Builder.CreateAnd(remap(AsInt), Mask, "and"); - return Builder.CreateIntToPtr(And, ValTy->getPointerTo(), "itp"); + return Builder.CreateIntToPtr( + And, PointerType::getUnqual(ValTy->getContext()), "itp"); } auto AlignVectors::createLoad(IRBuilderBase &Builder, Type *ValTy, Value *Ptr, diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp --- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp +++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp @@ -5760,8 +5760,8 @@ } InstructionCost AddressUnpackCost = getScalarizationOverhead( - FixedVectorType::get(ScalarTy->getPointerTo(), VF), DemandedElts, - /*Insert=*/false, /*Extract=*/true, CostKind); + FixedVectorType::get(PointerType::getUnqual(ScalarTy->getContext()), VF), + DemandedElts, /*Insert=*/false, /*Extract=*/true, CostKind); // The cost of the scalar loads/stores. InstructionCost MemoryOpCost = diff --git a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp --- a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp +++ b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp @@ -190,7 +190,8 @@ auto *OrigBiasInst = dyn_cast(AddrInst->getOperand(0)); assert(OrigBiasInst->getOpcode() == Instruction::BinaryOps::Add); Value *BiasInst = Builder.Insert(OrigBiasInst->clone()); - Addr = Builder.CreateIntToPtr(BiasInst, Ty->getPointerTo()); + Addr = Builder.CreateIntToPtr(BiasInst, + PointerType::getUnqual(Ty->getContext())); } if (AtomicCounterUpdatePromoted) // automic update currently can only be promoted across the current diff --git a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp --- a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp @@ -3379,12 +3379,10 @@ IRBuilder<> IRB(&I); Value *Addr = I.getArgOperand(0); Type *Ty = IRB.getInt32Ty(); - Type *PtrTy = IRB.getPtrTy(); Value *ShadowPtr = getShadowOriginPtr(Addr, IRB, Ty, Align(1), /*isStore*/ true).first; - IRB.CreateStore(getCleanShadow(Ty), - IRB.CreatePointerCast(ShadowPtr, PtrTy)); + IRB.CreateStore(getCleanShadow(Ty), ShadowPtr); if (ClCheckAccessAddress) insertShadowCheck(Addr, &I); diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -9476,7 +9476,8 @@ const DataLayout &DL = Builder.GetInsertBlock()->getModule()->getDataLayout(); Type *IndexTy = State.VF.isScalable() && (isReverse() || Part > 0) - ? DL.getIndexType(ScalarDataTy->getPointerTo()) + ? DL.getIndexType(PointerType::getUnqual( + ScalarDataTy->getContext())) : Builder.getInt32Ty(); bool InBounds = false; if (auto *gep = dyn_cast(Ptr->stripPointerCasts()))