[llvm] 0680795 - [llvm] Remove uses of hasSameElemenTypeAs() (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 14 01:35:39 PDT 2023
Author: Nikita Popov
Date: 2023-07-14T10:32:43+02:00
New Revision: 06807957c5fc88f8dd482482772bb2a8b6823a06
URL: https://github.com/llvm/llvm-project/commit/06807957c5fc88f8dd482482772bb2a8b6823a06
DIFF: https://github.com/llvm/llvm-project/commit/06807957c5fc88f8dd482482772bb2a8b6823a06.diff
LOG: [llvm] Remove uses of hasSameElemenTypeAs() (NFC)
Always returns true with opaque pointers.
Added:
Modified:
llvm/lib/IR/Constants.cpp
llvm/lib/IR/Instructions.cpp
llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
Removed:
################################################################################
diff --git a/llvm/lib/IR/Constants.cpp b/llvm/lib/IR/Constants.cpp
index 1d9808ead1ad1f..23af3c43b504ac 100644
--- a/llvm/lib/IR/Constants.cpp
+++ b/llvm/lib/IR/Constants.cpp
@@ -2226,21 +2226,6 @@ Constant *ConstantExpr::getAddrSpaceCast(Constant *C, Type *DstTy,
bool OnlyIfReduced) {
assert(CastInst::castIsValid(Instruction::AddrSpaceCast, C, DstTy) &&
"Invalid constantexpr addrspacecast!");
-
- // Canonicalize addrspacecasts between
diff erent pointer types by first
- // bitcasting the pointer type and then converting the address space.
- PointerType *SrcScalarTy = cast<PointerType>(C->getType()->getScalarType());
- PointerType *DstScalarTy = cast<PointerType>(DstTy->getScalarType());
- if (!SrcScalarTy->hasSameElementTypeAs(DstScalarTy)) {
- Type *MidTy = PointerType::getWithSamePointeeType(
- DstScalarTy, SrcScalarTy->getAddressSpace());
- if (VectorType *VT = dyn_cast<VectorType>(DstTy)) {
- // Handle vectors of pointers.
- MidTy = FixedVectorType::get(MidTy,
- cast<FixedVectorType>(VT)->getNumElements());
- }
- C = getBitCast(C, MidTy);
- }
return getFoldedCast(Instruction::AddrSpaceCast, C, DstTy, OnlyIfReduced);
}
diff --git a/llvm/lib/IR/Instructions.cpp b/llvm/lib/IR/Instructions.cpp
index f21767165f3087..23bd16672aab96 100644
--- a/llvm/lib/IR/Instructions.cpp
+++ b/llvm/lib/IR/Instructions.cpp
@@ -3397,15 +3397,9 @@ unsigned CastInst::isEliminableCastPair(
"Illegal addrspacecast, bitcast sequence!");
// Allowed, use first cast's opcode
return firstOp;
- case 14: {
- // bitcast, addrspacecast -> addrspacecast if the element type of
- // bitcast's source is the same as that of addrspacecast's destination.
- PointerType *SrcPtrTy = cast<PointerType>(SrcTy->getScalarType());
- PointerType *DstPtrTy = cast<PointerType>(DstTy->getScalarType());
- if (SrcPtrTy->hasSameElementTypeAs(DstPtrTy))
- return Instruction::AddrSpaceCast;
- return 0;
- }
+ case 14:
+ // bitcast, addrspacecast -> addrspacecast
+ return Instruction::AddrSpaceCast;
case 15:
// FIXME: this state can be merged with (1), but the following assert
// is useful to check the correcteness of the sequence due to semantic
diff --git a/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp b/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
index a82be5b973cf71..e907571b5ea627 100644
--- a/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
+++ b/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
@@ -1251,20 +1251,6 @@ bool InferAddressSpacesImpl::rewriteWithNewAddressSpaces(
if (AddrSpaceCastInst *ASC = dyn_cast<AddrSpaceCastInst>(CurUser)) {
unsigned NewAS = NewV->getType()->getPointerAddressSpace();
if (ASC->getDestAddressSpace() == NewAS) {
- if (!cast<PointerType>(ASC->getType()->getScalarType())
- ->hasSameElementTypeAs(
- cast<PointerType>(NewV->getType()->getScalarType()))) {
- BasicBlock::iterator InsertPos;
- if (Instruction *NewVInst = dyn_cast<Instruction>(NewV))
- InsertPos = std::next(NewVInst->getIterator());
- else if (Instruction *VInst = dyn_cast<Instruction>(V))
- InsertPos = std::next(VInst->getIterator());
- else
- InsertPos = ASC->getIterator();
-
- NewV = CastInst::Create(Instruction::BitCast, NewV,
- ASC->getType(), "", &*InsertPos);
- }
ASC->replaceAllUsesWith(NewV);
DeadInstructions.push_back(ASC);
continue;
More information about the llvm-commits
mailing list