[llvm] 503ef0a - [InstCombine] Remove addrspacecast bitcast extraction fold (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 6 00:53:41 PDT 2023
Author: Nikita Popov
Date: 2023-04-06T09:53:32+02:00
New Revision: 503ef0a8e79ed26750ba1e064911e56e29c91f2f
URL: https://github.com/llvm/llvm-project/commit/503ef0a8e79ed26750ba1e064911e56e29c91f2f
DIFF: https://github.com/llvm/llvm-project/commit/503ef0a8e79ed26750ba1e064911e56e29c91f2f.diff
LOG: [InstCombine] Remove addrspacecast bitcast extraction fold (NFC)
This is not relevant for opaque pointers, and as such no longer
necessary.
Added:
Modified:
llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
index e0872c83c06f..0268db22b5d5 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
@@ -2708,23 +2708,5 @@ Instruction *InstCombinerImpl::visitBitCast(BitCastInst &CI) {
}
Instruction *InstCombinerImpl::visitAddrSpaceCast(AddrSpaceCastInst &CI) {
- // If the destination pointer element type is not the same as the source's
- // first do a bitcast to the destination type, and then the addrspacecast.
- // This allows the cast to be exposed to other transforms.
- Value *Src = CI.getOperand(0);
- PointerType *SrcTy = cast<PointerType>(Src->getType()->getScalarType());
- PointerType *DestTy = cast<PointerType>(CI.getType()->getScalarType());
-
- if (!SrcTy->hasSameElementTypeAs(DestTy)) {
- Type *MidTy =
- PointerType::getWithSamePointeeType(DestTy, SrcTy->getAddressSpace());
- // Handle vectors of pointers.
- if (VectorType *VT = dyn_cast<VectorType>(CI.getType()))
- MidTy = VectorType::get(MidTy, VT->getElementCount());
-
- Value *NewBitCast = Builder.CreateBitCast(Src, MidTy);
- return new AddrSpaceCastInst(NewBitCast, CI.getType());
- }
-
return commonPointerCastTransforms(CI);
}
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp b/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
index d4eaf292ad0f..e9bb4089c4e9 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
@@ -436,7 +436,7 @@ void PointerReplacer::replacePointer(Value *V) {
#ifndef NDEBUG
auto *PT = cast<PointerType>(Root.getType());
auto *NT = cast<PointerType>(V->getType());
- assert(PT != NT && PT->hasSameElementTypeAs(NT) && "Invalid usage");
+ assert(PT != NT && "Invalid usage");
#endif
WorkMap[&Root] = V;
More information about the llvm-commits
mailing list