[llvm] a17ffaf - [AMDGPU] Avoid unnecessary zero-index GEPs
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 13 06:11:01 PST 2026
Author: Nikita Popov
Date: 2026-02-13T15:10:42+01:00
New Revision: a17ffaf9d08a1a88fba522acfb6bd19b5ec90c24
URL: https://github.com/llvm/llvm-project/commit/a17ffaf9d08a1a88fba522acfb6bd19b5ec90c24
DIFF: https://github.com/llvm/llvm-project/commit/a17ffaf9d08a1a88fba522acfb6bd19b5ec90c24.diff
LOG: [AMDGPU] Avoid unnecessary zero-index GEPs
These are no-ops.
Added:
Modified:
llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp b/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
index 588eee036a4e2..17260a875db72 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
@@ -888,10 +888,7 @@ class AMDGPULowerModuleLDS {
markUsedByKernel(func, N);
- auto *emptyCharArray = ArrayType::get(Type::getInt8Ty(Ctx), 0);
- auto *GEP = ConstantExpr::getGetElementPtr(
- emptyCharArray, N, ConstantInt::get(I32, 0), true);
- newDynamicLDS.push_back(ConstantExpr::getPtrToInt(GEP, I32));
+ newDynamicLDS.push_back(ConstantExpr::getPtrToInt(N, I32));
} else {
newDynamicLDS.push_back(PoisonValue::get(I32));
}
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
index 3fd554a4c0443..362c221aa1392 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
@@ -990,7 +990,6 @@ void AMDGPUSwLowerLDS::buildNonKernelLDSBaseTable(
auto &Kernels = NKLDSParams.OrderedKernels;
if (Kernels.empty())
return;
- Type *Int32Ty = IRB.getInt32Ty();
const size_t NumberKernels = Kernels.size();
ArrayType *AllKernelsOffsetsType =
ArrayType::get(IRB.getPtrTy(AMDGPUAS::LOCAL_ADDRESS), NumberKernels);
@@ -998,12 +997,7 @@ void AMDGPUSwLowerLDS::buildNonKernelLDSBaseTable(
for (size_t i = 0; i < NumberKernels; i++) {
Function *Func = Kernels[i];
auto &LDSParams = FuncLDSAccessInfo.KernelToLDSParametersMap[Func];
- GlobalVariable *SwLDS = LDSParams.SwLDS;
- assert(SwLDS);
- Constant *GEPIdx[] = {ConstantInt::get(Int32Ty, 0)};
- Constant *GEP =
- ConstantExpr::getGetElementPtr(SwLDS->getType(), SwLDS, GEPIdx, true);
- OverallConstantExprElts[i] = GEP;
+ OverallConstantExprElts[i] = LDSParams.SwLDS;
}
Constant *init =
ConstantArray::get(AllKernelsOffsetsType, OverallConstantExprElts);
More information about the llvm-commits
mailing list