[llvm] 6b83c06 - [ArgPromotion] Remove code for handling typed pointers (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 23 07:57:15 PDT 2023
Author: Nikita Popov
Date: 2023-06-23T16:57:07+02:00
New Revision: 6b83c06aab5c02a4a4e00a194daa81533daf905d
URL: https://github.com/llvm/llvm-project/commit/6b83c06aab5c02a4a4e00a194daa81533daf905d
DIFF: https://github.com/llvm/llvm-project/commit/6b83c06aab5c02a4a4e00a194daa81533daf905d.diff
LOG: [ArgPromotion] Remove code for handling typed pointers (NFC)
Added:
Modified:
llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
index 8c6c0728097ca..824da6395f2e5 100644
--- a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
+++ b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
@@ -98,49 +98,11 @@ using OffsetAndArgPart = std::pair<int64_t, ArgPart>;
static Value *createByteGEP(IRBuilderBase &IRB, const DataLayout &DL,
Value *Ptr, Type *ResElemTy, int64_t Offset) {
- // For non-opaque pointers, try to create a "nice" GEP if possible, otherwise
- // fall back to an i8 GEP to a specific offset.
- unsigned AddrSpace = Ptr->getType()->getPointerAddressSpace();
- APInt OrigOffset(DL.getIndexTypeSizeInBits(Ptr->getType()), Offset);
- if (!Ptr->getType()->isOpaquePointerTy()) {
- Type *OrigElemTy = Ptr->getType()->getNonOpaquePointerElementType();
- if (OrigOffset == 0 && OrigElemTy == ResElemTy)
- return Ptr;
-
- if (OrigElemTy->isSized()) {
- APInt TmpOffset = OrigOffset;
- Type *TmpTy = OrigElemTy;
- SmallVector<APInt> IntIndices =
- DL.getGEPIndicesForOffset(TmpTy, TmpOffset);
- if (TmpOffset == 0) {
- // Try to add trailing zero indices to reach the right type.
- while (TmpTy != ResElemTy) {
- Type *NextTy = GetElementPtrInst::getTypeAtIndex(TmpTy, (uint64_t)0);
- if (!NextTy)
- break;
-
- IntIndices.push_back(APInt::getZero(
- isa<StructType>(TmpTy) ? 32 : OrigOffset.getBitWidth()));
- TmpTy = NextTy;
- }
-
- SmallVector<Value *> Indices;
- for (const APInt &Index : IntIndices)
- Indices.push_back(IRB.getInt(Index));
-
- if (OrigOffset != 0 || TmpTy == ResElemTy) {
- Ptr = IRB.CreateGEP(OrigElemTy, Ptr, Indices);
- return IRB.CreateBitCast(Ptr, ResElemTy->getPointerTo(AddrSpace));
- }
- }
- }
- }
-
- if (OrigOffset != 0) {
- Ptr = IRB.CreateBitCast(Ptr, IRB.getInt8PtrTy(AddrSpace));
- Ptr = IRB.CreateGEP(IRB.getInt8Ty(), Ptr, IRB.getInt(OrigOffset));
+ if (Offset != 0) {
+ APInt APOffset(DL.getIndexTypeSizeInBits(Ptr->getType()), Offset);
+ Ptr = IRB.CreateGEP(IRB.getInt8Ty(), Ptr, IRB.getInt(APOffset));
}
- return IRB.CreateBitCast(Ptr, ResElemTy->getPointerTo(AddrSpace));
+ return Ptr;
}
/// DoPromotion - This method actually performs the promotion of the specified
More information about the llvm-commits
mailing list