From 9cf5254878ca13bc55a988a4bb370de6c3d791f3 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 18 Jul 2023 11:13:26 +0200 Subject: [PATCH] [llvm] Remove some uses of isOpaqueOrPointeeTypeEquals() (NFC) --- llvm/include/llvm/Analysis/TargetTransformInfoImpl.h | 3 --- llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h | 5 +---- llvm/include/llvm/IR/InstrTypes.h | 1 - llvm/include/llvm/IR/Instructions.h | 10 ---------- llvm/lib/Analysis/LoopAccessAnalysis.cpp | 4 ---- llvm/lib/IR/Constants.cpp | 1 - llvm/lib/IR/Instructions.cpp | 14 -------------- llvm/lib/Transforms/Coroutines/CoroSplit.cpp | 9 +-------- llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp | 2 -- llvm/lib/Transforms/Scalar/Scalarizer.cpp | 9 +-------- llvm/lib/Transforms/Utils/InlineFunction.cpp | 2 -- llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp | 9 --------- 12 files changed, 3 insertions(+), 66 deletions(-) diff --git a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h index b34eaa3..4ab3399 100644 --- a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h +++ b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h @@ -990,9 +990,6 @@ public: ArrayRef Operands, Type *AccessType, TTI::TargetCostKind CostKind) { assert(PointeeType && Ptr && "can't get GEPCost of nullptr"); - assert(cast(Ptr->getType()->getScalarType()) - ->isOpaqueOrPointeeTypeMatches(PointeeType) && - "explicit pointee type doesn't match operand's pointee type"); auto *BaseGV = dyn_cast(Ptr->stripPointerCasts()); bool HasBaseReg = (BaseGV == nullptr); diff --git a/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h b/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h index cca04ba..011f472 100644 --- a/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h +++ b/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h @@ -1188,10 +1188,7 @@ public: AtomicReductionGenTy AtomicReductionGen) : ElementType(ElementType), Variable(Variable), PrivateVariable(PrivateVariable), ReductionGen(ReductionGen), - AtomicReductionGen(AtomicReductionGen) { - assert(cast(Variable->getType()) - ->isOpaqueOrPointeeTypeMatches(ElementType) && "Invalid elem type"); - } + AtomicReductionGen(AtomicReductionGen) {} /// Reduction element type, must match pointee type of variable. Type *ElementType; diff --git a/llvm/include/llvm/IR/InstrTypes.h b/llvm/include/llvm/IR/InstrTypes.h index a48852e..53d91eb 100644 --- a/llvm/include/llvm/IR/InstrTypes.h +++ b/llvm/include/llvm/IR/InstrTypes.h @@ -1461,7 +1461,6 @@ public: /// type. void setCalledFunction(FunctionType *FTy, Value *Fn) { this->FTy = FTy; - assert(cast(Fn->getType())->isOpaqueOrPointeeTypeMatches(FTy)); // This function doesn't mutate the return type, only the function // type. Seems broken, but I'm just gonna stick an assert in for now. assert(getType() == FTy->getReturnType()); diff --git a/llvm/include/llvm/IR/Instructions.h b/llvm/include/llvm/IR/Instructions.h index d7b1568..a71d7d0 100644 --- a/llvm/include/llvm/IR/Instructions.h +++ b/llvm/include/llvm/IR/Instructions.h @@ -969,8 +969,6 @@ public: Instruction *InsertBefore = nullptr) { unsigned Values = 1 + unsigned(IdxList.size()); assert(PointeeType && "Must specify element type"); - assert(cast(Ptr->getType()->getScalarType()) - ->isOpaqueOrPointeeTypeMatches(PointeeType)); return new (Values) GetElementPtrInst(PointeeType, Ptr, IdxList, Values, NameStr, InsertBefore); } @@ -981,8 +979,6 @@ public: BasicBlock *InsertAtEnd) { unsigned Values = 1 + unsigned(IdxList.size()); assert(PointeeType && "Must specify element type"); - assert(cast(Ptr->getType()->getScalarType()) - ->isOpaqueOrPointeeTypeMatches(PointeeType)); return new (Values) GetElementPtrInst(PointeeType, Ptr, IdxList, Values, NameStr, InsertAtEnd); } @@ -1018,8 +1014,6 @@ public: void setResultElementType(Type *Ty) { ResultElementType = Ty; } Type *getResultElementType() const { - assert(cast(getType()->getScalarType()) - ->isOpaqueOrPointeeTypeMatches(ResultElementType)); return ResultElementType; } @@ -1165,8 +1159,6 @@ GetElementPtrInst::GetElementPtrInst(Type *PointeeType, Value *Ptr, Values, InsertBefore), SourceElementType(PointeeType), ResultElementType(getIndexedType(PointeeType, IdxList)) { - assert(cast(getType()->getScalarType()) - ->isOpaqueOrPointeeTypeMatches(ResultElementType)); init(Ptr, IdxList, NameStr); } @@ -1179,8 +1171,6 @@ GetElementPtrInst::GetElementPtrInst(Type *PointeeType, Value *Ptr, Values, InsertAtEnd), SourceElementType(PointeeType), ResultElementType(getIndexedType(PointeeType, IdxList)) { - assert(cast(getType()->getScalarType()) - ->isOpaqueOrPointeeTypeMatches(ResultElementType)); init(Ptr, IdxList, NameStr); } diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp index 64f5baa..8b6c9eb 100644 --- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp +++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp @@ -1470,10 +1470,6 @@ std::optional llvm::getPointersDiff(Type *ElemTyA, Value *PtrA, ScalarEvolution &SE, bool StrictCheck, bool CheckType) { assert(PtrA && PtrB && "Expected non-nullptr pointers."); - assert(cast(PtrA->getType()) - ->isOpaqueOrPointeeTypeMatches(ElemTyA) && "Wrong PtrA type"); - assert(cast(PtrB->getType()) - ->isOpaqueOrPointeeTypeMatches(ElemTyB) && "Wrong PtrB type"); // Make sure that A and B are different pointers. if (PtrA == PtrB) diff --git a/llvm/lib/IR/Constants.cpp b/llvm/lib/IR/Constants.cpp index 23af3c4..9c8d044 100644 --- a/llvm/lib/IR/Constants.cpp +++ b/llvm/lib/IR/Constants.cpp @@ -2383,7 +2383,6 @@ Constant *ConstantExpr::getGetElementPtr(Type *Ty, Constant *C, PointerType *OrigPtrTy = cast(C->getType()->getScalarType()); assert(Ty && "Must specify element type"); assert(isSupportedGetElementPtr(Ty) && "Element type is unsupported!"); - assert(OrigPtrTy->isOpaqueOrPointeeTypeMatches(Ty)); if (Constant *FC = ConstantFoldGetElementPtr(Ty, C, InBounds, InRangeIndex, Idxs)) diff --git a/llvm/lib/IR/Instructions.cpp b/llvm/lib/IR/Instructions.cpp index 23bd166..cb0ac0f 100644 --- a/llvm/lib/IR/Instructions.cpp +++ b/llvm/lib/IR/Instructions.cpp @@ -1593,7 +1593,6 @@ LoadInst::LoadInst(Type *Ty, Value *Ptr, const Twine &Name, bool isVolatile, Align Align, AtomicOrdering Order, SyncScope::ID SSID, Instruction *InsertBef) : UnaryInstruction(Ty, Load, Ptr, InsertBef) { - assert(cast(Ptr->getType())->isOpaqueOrPointeeTypeMatches(Ty)); setVolatile(isVolatile); setAlignment(Align); setAtomic(Order, SSID); @@ -1605,7 +1604,6 @@ LoadInst::LoadInst(Type *Ty, Value *Ptr, const Twine &Name, bool isVolatile, Align Align, AtomicOrdering Order, SyncScope::ID SSID, BasicBlock *InsertAE) : UnaryInstruction(Ty, Load, Ptr, InsertAE) { - assert(cast(Ptr->getType())->isOpaqueOrPointeeTypeMatches(Ty)); setVolatile(isVolatile); setAlignment(Align); setAtomic(Order, SSID); @@ -1621,9 +1619,6 @@ void StoreInst::AssertOK() { assert(getOperand(0) && getOperand(1) && "Both operands must be non-null!"); assert(getOperand(1)->getType()->isPointerTy() && "Ptr must have pointer type!"); - assert(cast(getOperand(1)->getType()) - ->isOpaqueOrPointeeTypeMatches(getOperand(0)->getType()) && - "Ptr must be a pointer to Val type!"); } StoreInst::StoreInst(Value *val, Value *addr, Instruction *InsertBefore) @@ -1703,12 +1698,6 @@ void AtomicCmpXchgInst::Init(Value *Ptr, Value *Cmp, Value *NewVal, "All operands must be non-null!"); assert(getOperand(0)->getType()->isPointerTy() && "Ptr must have pointer type!"); - assert(cast(getOperand(0)->getType()) - ->isOpaqueOrPointeeTypeMatches(getOperand(1)->getType()) && - "Ptr must be a pointer to Cmp type!"); - assert(cast(getOperand(0)->getType()) - ->isOpaqueOrPointeeTypeMatches(getOperand(2)->getType()) && - "Ptr must be a pointer to NewVal type!"); assert(getOperand(1)->getType() == getOperand(2)->getType() && "Cmp type and NewVal type must be same!"); } @@ -1761,9 +1750,6 @@ void AtomicRMWInst::Init(BinOp Operation, Value *Ptr, Value *Val, "All operands must be non-null!"); assert(getOperand(0)->getType()->isPointerTy() && "Ptr must have pointer type!"); - assert(cast(getOperand(0)->getType()) - ->isOpaqueOrPointeeTypeMatches(getOperand(1)->getType()) && - "Ptr must be a pointer to Val type!"); assert(Ordering != AtomicOrdering::NotAtomic && "AtomicRMW instructions must be atomic!"); } diff --git a/llvm/lib/Transforms/Coroutines/CoroSplit.cpp b/llvm/lib/Transforms/Coroutines/CoroSplit.cpp index 07b879ff..358f72d 100644 --- a/llvm/lib/Transforms/Coroutines/CoroSplit.cpp +++ b/llvm/lib/Transforms/Coroutines/CoroSplit.cpp @@ -634,20 +634,13 @@ static void replaceSwiftErrorOps(Function &F, coro::Shape &Shape, return; Value *CachedSlot = nullptr; auto getSwiftErrorSlot = [&](Type *ValueTy) -> Value * { - if (CachedSlot) { - assert(cast(CachedSlot->getType()) - ->isOpaqueOrPointeeTypeMatches(ValueTy) && - "multiple swifterror slots in function with different types"); + if (CachedSlot) return CachedSlot; - } // Check if the function has a swifterror argument. for (auto &Arg : F.args()) { if (Arg.isSwiftError()) { CachedSlot = &Arg; - assert(cast(Arg.getType()) - ->isOpaqueOrPointeeTypeMatches(ValueTy) && - "swifterror argument does not have expected type"); return &Arg; } } diff --git a/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp index 9d24c15..ce35eef 100644 --- a/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp @@ -813,8 +813,6 @@ bool ThreadSanitizer::instrumentAtomic(Instruction *I, const DataLayout &DL) { int ThreadSanitizer::getMemoryAccessFuncIndex(Type *OrigTy, Value *Addr, const DataLayout &DL) { assert(OrigTy->isSized()); - assert( - cast(Addr->getType())->isOpaqueOrPointeeTypeMatches(OrigTy)); uint32_t TypeSize = DL.getTypeStoreSizeInBits(OrigTy); if (TypeSize != 8 && TypeSize != 16 && TypeSize != 32 && TypeSize != 64 && TypeSize != 128) { diff --git a/llvm/lib/Transforms/Scalar/Scalarizer.cpp b/llvm/lib/Transforms/Scalar/Scalarizer.cpp index 6190392..ec8e5c2 100644 --- a/llvm/lib/Transforms/Scalar/Scalarizer.cpp +++ b/llvm/lib/Transforms/Scalar/Scalarizer.cpp @@ -374,14 +374,7 @@ INITIALIZE_PASS_END(ScalarizerLegacyPass, "scalarizer", Scatterer::Scatterer(BasicBlock *bb, BasicBlock::iterator bbi, Value *v, const VectorSplit &VS, ValueVector *cachePtr) : BB(bb), BBI(bbi), V(v), VS(VS), CachePtr(cachePtr) { - Type *Ty = V->getType(); - if (Ty->isPointerTy()) { - assert(cast(Ty)->isOpaqueOrPointeeTypeMatches(VS.VecTy) && - "Pointer element type mismatch"); - IsPointer = true; - } else { - IsPointer = false; - } + IsPointer = V->getType()->isPointerTy(); if (!CachePtr) { Tmp.resize(VS.NumFragments, nullptr); } else { diff --git a/llvm/lib/Transforms/Utils/InlineFunction.cpp b/llvm/lib/Transforms/Utils/InlineFunction.cpp index dd5380b..23144c0 100644 --- a/llvm/lib/Transforms/Utils/InlineFunction.cpp +++ b/llvm/lib/Transforms/Utils/InlineFunction.cpp @@ -1480,8 +1480,6 @@ static Value *HandleByValArgument(Type *ByValType, Value *Arg, const Function *CalledFunc, InlineFunctionInfo &IFI, MaybeAlign ByValAlignment) { - assert(cast(Arg->getType()) - ->isOpaqueOrPointeeTypeMatches(ByValType)); Function *Caller = TheCall->getFunction(); const DataLayout &DL = Caller->getParent()->getDataLayout(); diff --git a/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp b/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp index dd1c958..389b379 100644 --- a/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp +++ b/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp @@ -1180,8 +1180,6 @@ TEST_F(OpenMPIRBuilderTest, ParallelForwardAsPointers) { Type *Arg2Type = OutlinedFn->getArg(2)->getType(); EXPECT_TRUE(Arg2Type->isPointerTy()); - EXPECT_TRUE( - cast(Arg2Type)->isOpaqueOrPointeeTypeMatches(ArgStructTy)); } TEST_F(OpenMPIRBuilderTest, CanonicalLoopSimple) { @@ -4795,10 +4793,6 @@ TEST_F(OpenMPIRBuilderTest, CreateMapperAllocas) { EXPECT_TRUE(MapperAllocas.ArgsBase->getAllocatedType() ->getArrayElementType() ->isPointerTy()); - EXPECT_TRUE( - cast( - MapperAllocas.ArgsBase->getAllocatedType()->getArrayElementType()) - ->isOpaqueOrPointeeTypeMatches(Builder.getInt8Ty())); EXPECT_TRUE(MapperAllocas.Args->getAllocatedType()->isArrayTy()); ArrType = dyn_cast(MapperAllocas.Args->getAllocatedType()); @@ -4806,9 +4800,6 @@ TEST_F(OpenMPIRBuilderTest, CreateMapperAllocas) { EXPECT_TRUE(MapperAllocas.Args->getAllocatedType() ->getArrayElementType() ->isPointerTy()); - EXPECT_TRUE(cast( - MapperAllocas.Args->getAllocatedType()->getArrayElementType()) - ->isOpaqueOrPointeeTypeMatches(Builder.getInt8Ty())); EXPECT_TRUE(MapperAllocas.ArgSizes->getAllocatedType()->isArrayTy()); ArrType = dyn_cast(MapperAllocas.ArgSizes->getAllocatedType()); -- 2.7.4