[llvm] f8ffd67 - [HexagonVectorCombine] Remove use of getNonOpaquePointerElementType() (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 14 02:31:52 PDT 2023
Author: Nikita Popov
Date: 2023-07-14T11:31:43+02:00
New Revision: f8ffd67dac537b80929b7ed98835adda40f54e27
URL: https://github.com/llvm/llvm-project/commit/f8ffd67dac537b80929b7ed98835adda40f54e27
DIFF: https://github.com/llvm/llvm-project/commit/f8ffd67dac537b80929b7ed98835adda40f54e27.diff
LOG: [HexagonVectorCombine] Remove use of getNonOpaquePointerElementType() (NFC)
Added:
Modified:
llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp b/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
index 1424ae2cef71be..b2a55219df06ac 100644
--- a/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
@@ -684,33 +684,11 @@ auto AlignVectors::createAdjustedPointer(IRBuilderBase &Builder, Value *Ptr,
Type *ValTy, int Adjust,
const InstMap &CloneMap) const
-> Value * {
- auto remap = [&](Value *V) -> Value * {
- if (auto *I = dyn_cast<Instruction>(V)) {
- for (auto [Old, New] : CloneMap)
- I->replaceUsesOfWith(Old, New);
- return I;
- }
- return V;
- };
- // The adjustment is in bytes, but if it's a multiple of the type size,
- // we don't need to do pointer casts.
- auto *PtrTy = cast<PointerType>(Ptr->getType());
- if (!PtrTy->isOpaque()) {
- Type *ElemTy = PtrTy->getNonOpaquePointerElementType();
- int ElemSize = HVC.getSizeOf(ElemTy, HVC.Alloc);
- if (Adjust % ElemSize == 0 && Adjust != 0) {
- Value *Tmp0 = Builder.CreateGEP(
- ElemTy, Ptr, HVC.getConstInt(Adjust / ElemSize), "gep");
- return Builder.CreatePointerCast(remap(Tmp0), ValTy->getPointerTo(),
- "cst");
- }
- }
-
- PointerType *CharPtrTy = Type::getInt8PtrTy(HVC.F.getContext());
- Value *Tmp0 = Builder.CreatePointerCast(Ptr, CharPtrTy, "cst");
- Value *Tmp1 = Builder.CreateGEP(Type::getInt8Ty(HVC.F.getContext()),
- remap(Tmp0), HVC.getConstInt(Adjust), "gep");
- return Builder.CreatePointerCast(remap(Tmp1), ValTy->getPointerTo(), "cst");
+ if (auto *I = dyn_cast<Instruction>(Ptr))
+ if (Instruction *New = CloneMap.lookup(I))
+ Ptr = New;
+ return Builder.CreateGEP(Type::getInt8Ty(HVC.F.getContext()), Ptr,
+ HVC.getConstInt(Adjust), "gep");
}
auto AlignVectors::createAlignedPointer(IRBuilderBase &Builder, Value *Ptr,
More information about the llvm-commits
mailing list