[llvm] 6069374 - [SDAG] Remove IndexType manipulation in getUniformBase and callers (#151578)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 15 08:00:50 PDT 2025
Author: Philip Reames
Date: 2025-08-15T08:00:47-07:00
New Revision: 606937474e552f0a5d620f67f19947c96cfa9d2a
URL: https://github.com/llvm/llvm-project/commit/606937474e552f0a5d620f67f19947c96cfa9d2a
DIFF: https://github.com/llvm/llvm-project/commit/606937474e552f0a5d620f67f19947c96cfa9d2a.diff
LOG: [SDAG] Remove IndexType manipulation in getUniformBase and callers (#151578)
All paths set it to the same value, just propagate that value to the
consumer.
Added:
Modified:
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 2eaab02130699..3ac271d16c147 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -4909,9 +4909,8 @@ void SelectionDAGBuilder::visitMaskedStore(const CallInst &I,
// extract the splat value and use it as a uniform base.
// In all other cases the function returns 'false'.
static bool getUniformBase(const Value *Ptr, SDValue &Base, SDValue &Index,
- ISD::MemIndexType &IndexType, SDValue &Scale,
- SelectionDAGBuilder *SDB, const BasicBlock *CurBB,
- uint64_t ElemSize) {
+ SDValue &Scale, SelectionDAGBuilder *SDB,
+ const BasicBlock *CurBB, uint64_t ElemSize) {
SelectionDAG& DAG = SDB->DAG;
const TargetLowering &TLI = DAG.getTargetLoweringInfo();
const DataLayout &DL = DAG.getDataLayout();
@@ -4929,7 +4928,6 @@ static bool getUniformBase(const Value *Ptr, SDValue &Base, SDValue &Index,
ElementCount NumElts = cast<VectorType>(Ptr->getType())->getElementCount();
EVT VT = EVT::getVectorVT(*DAG.getContext(), TLI.getPointerTy(DL), NumElts);
Index = DAG.getConstant(0, SDB->getCurSDLoc(), VT);
- IndexType = ISD::SIGNED_SCALED;
Scale = DAG.getTargetConstant(1, SDB->getCurSDLoc(), TLI.getPointerTy(DL));
return true;
}
@@ -4959,7 +4957,6 @@ static bool getUniformBase(const Value *Ptr, SDValue &Base, SDValue &Index,
Base = SDB->getValue(BasePtr);
Index = SDB->getValue(IndexVal);
- IndexType = ISD::SIGNED_SCALED;
Scale =
DAG.getTargetConstant(ScaleVal, SDB->getCurSDLoc(), TLI.getPointerTy(DL));
@@ -4981,9 +4978,8 @@ void SelectionDAGBuilder::visitMaskedScatter(const CallInst &I) {
SDValue Base;
SDValue Index;
- ISD::MemIndexType IndexType;
SDValue Scale;
- bool UniformBase = getUniformBase(Ptr, Base, Index, IndexType, Scale, this,
+ bool UniformBase = getUniformBase(Ptr, Base, Index, Scale, this,
I.getParent(), VT.getScalarStoreSize());
unsigned AS = Ptr->getType()->getScalarType()->getPointerAddressSpace();
@@ -4993,8 +4989,8 @@ void SelectionDAGBuilder::visitMaskedScatter(const CallInst &I) {
if (!UniformBase) {
Base = DAG.getConstant(0, sdl, TLI.getPointerTy(DAG.getDataLayout()));
Index = getValue(Ptr);
- IndexType = ISD::SIGNED_SCALED;
- Scale = DAG.getTargetConstant(1, sdl, TLI.getPointerTy(DAG.getDataLayout()));
+ Scale =
+ DAG.getTargetConstant(1, sdl, TLI.getPointerTy(DAG.getDataLayout()));
}
EVT IdxVT = Index.getValueType();
@@ -5006,7 +5002,7 @@ void SelectionDAGBuilder::visitMaskedScatter(const CallInst &I) {
SDValue Ops[] = { getMemoryRoot(), Src0, Mask, Base, Index, Scale };
SDValue Scatter = DAG.getMaskedScatter(DAG.getVTList(MVT::Other), VT, sdl,
- Ops, MMO, IndexType, false);
+ Ops, MMO, ISD::SIGNED_SCALED, false);
DAG.setRoot(Scatter);
setValue(&I, Scatter);
}
@@ -5099,9 +5095,8 @@ void SelectionDAGBuilder::visitMaskedGather(const CallInst &I) {
SDValue Root = DAG.getRoot();
SDValue Base;
SDValue Index;
- ISD::MemIndexType IndexType;
SDValue Scale;
- bool UniformBase = getUniformBase(Ptr, Base, Index, IndexType, Scale, this,
+ bool UniformBase = getUniformBase(Ptr, Base, Index, Scale, this,
I.getParent(), VT.getScalarStoreSize());
unsigned AS = Ptr->getType()->getScalarType()->getPointerAddressSpace();
MachineMemOperand *MMO = DAG.getMachineFunction().getMachineMemOperand(
@@ -5112,8 +5107,8 @@ void SelectionDAGBuilder::visitMaskedGather(const CallInst &I) {
if (!UniformBase) {
Base = DAG.getConstant(0, sdl, TLI.getPointerTy(DAG.getDataLayout()));
Index = getValue(Ptr);
- IndexType = ISD::SIGNED_SCALED;
- Scale = DAG.getTargetConstant(1, sdl, TLI.getPointerTy(DAG.getDataLayout()));
+ Scale =
+ DAG.getTargetConstant(1, sdl, TLI.getPointerTy(DAG.getDataLayout()));
}
EVT IdxVT = Index.getValueType();
@@ -5124,8 +5119,9 @@ void SelectionDAGBuilder::visitMaskedGather(const CallInst &I) {
}
SDValue Ops[] = { Root, Src0, Mask, Base, Index, Scale };
- SDValue Gather = DAG.getMaskedGather(DAG.getVTList(VT, MVT::Other), VT, sdl,
- Ops, MMO, IndexType, ISD::NON_EXTLOAD);
+ SDValue Gather =
+ DAG.getMaskedGather(DAG.getVTList(VT, MVT::Other), VT, sdl, Ops, MMO,
+ ISD::SIGNED_SCALED, ISD::NON_EXTLOAD);
PendingLoads.push_back(Gather.getValue(1));
setValue(&I, Gather);
@@ -6438,9 +6434,8 @@ void SelectionDAGBuilder::visitVectorHistogram(const CallInst &I,
SDValue Root = DAG.getRoot();
SDValue Base;
SDValue Index;
- ISD::MemIndexType IndexType;
SDValue Scale;
- bool UniformBase = getUniformBase(Ptr, Base, Index, IndexType, Scale, this,
+ bool UniformBase = getUniformBase(Ptr, Base, Index, Scale, this,
I.getParent(), VT.getScalarStoreSize());
unsigned AS = Ptr->getType()->getScalarType()->getPointerAddressSpace();
@@ -6453,7 +6448,6 @@ void SelectionDAGBuilder::visitVectorHistogram(const CallInst &I,
if (!UniformBase) {
Base = DAG.getConstant(0, sdl, TLI.getPointerTy(DAG.getDataLayout()));
Index = getValue(Ptr);
- IndexType = ISD::SIGNED_SCALED;
Scale =
DAG.getTargetConstant(1, sdl, TLI.getPointerTy(DAG.getDataLayout()));
}
@@ -6469,7 +6463,7 @@ void SelectionDAGBuilder::visitVectorHistogram(const CallInst &I,
SDValue Ops[] = {Root, Inc, Mask, Base, Index, Scale, ID};
SDValue Histogram = DAG.getMaskedHistogram(DAG.getVTList(MVT::Other), VT, sdl,
- Ops, MMO, IndexType);
+ Ops, MMO, ISD::SIGNED_SCALED);
setValue(&I, Histogram);
DAG.setRoot(Histogram);
@@ -8531,14 +8525,12 @@ void SelectionDAGBuilder::visitVPGather(
MachinePointerInfo(AS), MachineMemOperand::MOLoad,
LocationSize::beforeOrAfterPointer(), *Alignment, AAInfo, Ranges);
SDValue Base, Index, Scale;
- ISD::MemIndexType IndexType;
- bool UniformBase = getUniformBase(PtrOperand, Base, Index, IndexType, Scale,
- this, VPIntrin.getParent(),
- VT.getScalarStoreSize());
+ bool UniformBase =
+ getUniformBase(PtrOperand, Base, Index, Scale, this, VPIntrin.getParent(),
+ VT.getScalarStoreSize());
if (!UniformBase) {
Base = DAG.getConstant(0, DL, TLI.getPointerTy(DAG.getDataLayout()));
Index = getValue(PtrOperand);
- IndexType = ISD::SIGNED_SCALED;
Scale = DAG.getTargetConstant(1, DL, TLI.getPointerTy(DAG.getDataLayout()));
}
EVT IdxVT = Index.getValueType();
@@ -8550,7 +8542,7 @@ void SelectionDAGBuilder::visitVPGather(
LD = DAG.getGatherVP(
DAG.getVTList(VT, MVT::Other), VT, DL,
{DAG.getRoot(), Base, Index, Scale, OpValues[1], OpValues[2]}, MMO,
- IndexType);
+ ISD::SIGNED_SCALED);
PendingLoads.push_back(LD.getValue(1));
setValue(&VPIntrin, LD);
}
@@ -8594,16 +8586,13 @@ void SelectionDAGBuilder::visitVPScatter(
MachinePointerInfo(AS), MachineMemOperand::MOStore,
LocationSize::beforeOrAfterPointer(), *Alignment, AAInfo);
SDValue Base, Index, Scale;
- ISD::MemIndexType IndexType;
- bool UniformBase = getUniformBase(PtrOperand, Base, Index, IndexType, Scale,
- this, VPIntrin.getParent(),
- VT.getScalarStoreSize());
+ bool UniformBase =
+ getUniformBase(PtrOperand, Base, Index, Scale, this, VPIntrin.getParent(),
+ VT.getScalarStoreSize());
if (!UniformBase) {
Base = DAG.getConstant(0, DL, TLI.getPointerTy(DAG.getDataLayout()));
Index = getValue(PtrOperand);
- IndexType = ISD::SIGNED_SCALED;
- Scale =
- DAG.getTargetConstant(1, DL, TLI.getPointerTy(DAG.getDataLayout()));
+ Scale = DAG.getTargetConstant(1, DL, TLI.getPointerTy(DAG.getDataLayout()));
}
EVT IdxVT = Index.getValueType();
EVT EltTy = IdxVT.getVectorElementType();
@@ -8614,7 +8603,7 @@ void SelectionDAGBuilder::visitVPScatter(
ST = DAG.getScatterVP(DAG.getVTList(MVT::Other), VT, DL,
{getMemoryRoot(), OpValues[0], Base, Index, Scale,
OpValues[2], OpValues[3]},
- MMO, IndexType);
+ MMO, ISD::SIGNED_SCALED);
DAG.setRoot(ST);
setValue(&VPIntrin, ST);
}
More information about the llvm-commits
mailing list