Skip to content

Commit 499e656

Browse files
authored
[ISel/RISCV] Modernize loops (NFC) (#147281)
1 parent 9f1b956 commit 499e656

File tree

1 file changed

+35
-39
lines changed

1 file changed

+35
-39
lines changed

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 35 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4239,8 +4239,8 @@ static SDValue lowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG,
42394239
if ((EltVT == MVT::f16 && !Subtarget.hasStdExtZvfh()) || EltVT == MVT::bf16) {
42404240
MVT IVT = VT.changeVectorElementType(MVT::i16);
42414241
SmallVector<SDValue, 16> NewOps(Op.getNumOperands());
4242-
for (unsigned I = 0, E = Op.getNumOperands(); I != E; ++I) {
4243-
SDValue Elem = Op.getOperand(I);
4242+
for (const auto &[I, U] : enumerate(Op->ops())) {
4243+
SDValue Elem = U.get();
42444244
if ((EltVT == MVT::bf16 && Subtarget.hasStdExtZfbfmin()) ||
42454245
(EltVT == MVT::f16 && Subtarget.hasStdExtZfhmin())) {
42464246
// Called by LegalizeDAG, we need to use XLenVT operations since we
@@ -4379,16 +4379,16 @@ static SDValue lowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG,
43794379
SDValue UndefElem = DAG.getUNDEF(Op->getOperand(0)->getValueType(0));
43804380
SubVecAOps.reserve(NumElts);
43814381
SubVecBOps.reserve(NumElts);
4382-
for (unsigned i = 0; i < NumElts; i++) {
4383-
SDValue Elem = Op->getOperand(i);
4384-
if (i < NumElts / 2) {
4382+
for (const auto &[Idx, U] : enumerate(Op->ops())) {
4383+
SDValue Elem = U.get();
4384+
if (Idx < NumElts / 2) {
43854385
SubVecAOps.push_back(Elem);
43864386
SubVecBOps.push_back(UndefElem);
43874387
} else {
43884388
SubVecAOps.push_back(UndefElem);
43894389
SubVecBOps.push_back(Elem);
43904390
}
4391-
bool SelectMaskVal = (i < NumElts / 2);
4391+
bool SelectMaskVal = (Idx < NumElts / 2);
43924392
MaskVals.push_back(DAG.getConstant(SelectMaskVal, DL, XLenVT));
43934393
}
43944394
assert(SubVecAOps.size() == NumElts && SubVecBOps.size() == NumElts &&
@@ -4769,16 +4769,15 @@ static bool isAlternating(const std::array<std::pair<int, int>, 2> &SrcInfo,
47694769
ArrayRef<int> Mask, unsigned Factor,
47704770
bool RequiredPolarity) {
47714771
int NumElts = Mask.size();
4772-
for (int i = 0; i != NumElts; ++i) {
4773-
int M = Mask[i];
4772+
for (const auto &[Idx, M] : enumerate(Mask)) {
47744773
if (M < 0)
47754774
continue;
47764775
int Src = M >= NumElts;
4777-
int Diff = (int)i - (M % NumElts);
4776+
int Diff = (int)Idx - (M % NumElts);
47784777
bool C = Src == SrcInfo[1].first && Diff == SrcInfo[1].second;
47794778
assert(C != (Src == SrcInfo[0].first && Diff == SrcInfo[0].second) &&
47804779
"Must match exactly one of the two slides");
4781-
if (RequiredPolarity != (C == (i / Factor) % 2))
4780+
if (RequiredPolarity != (C == (Idx / Factor) % 2))
47824781
return false;
47834782
}
47844783
return true;
@@ -5503,18 +5502,18 @@ static SDValue lowerShuffleViaVRegSplitting(ShuffleVectorSDNode *SVN,
55035502
static bool isCompressMask(ArrayRef<int> Mask) {
55045503
int Last = -1;
55055504
bool SawUndef = false;
5506-
for (unsigned i = 0; i < Mask.size(); i++) {
5507-
if (Mask[i] == -1) {
5505+
for (const auto &[Idx, M] : enumerate(Mask)) {
5506+
if (M == -1) {
55085507
SawUndef = true;
55095508
continue;
55105509
}
55115510
if (SawUndef)
55125511
return false;
5513-
if (i > (unsigned)Mask[i])
5512+
if (Idx > (unsigned)M)
55145513
return false;
5515-
if (Mask[i] <= Last)
5514+
if (M <= Last)
55165515
return false;
5517-
Last = Mask[i];
5516+
Last = M;
55185517
}
55195518
return true;
55205519
}
@@ -5906,8 +5905,8 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG,
59065905
// otherwise reuse the even stream for the undef one. This improves
59075906
// spread(2) shuffles.
59085907
bool LaneIsUndef[2] = { true, true};
5909-
for (unsigned i = 0; i < Mask.size(); i++)
5910-
LaneIsUndef[i % 2] &= (Mask[i] == -1);
5908+
for (const auto &[Idx, M] : enumerate(Mask))
5909+
LaneIsUndef[Idx % 2] &= (M == -1);
59115910

59125911
int Size = Mask.size();
59135912
SDValue EvenV, OddV;
@@ -6019,14 +6018,14 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG,
60196018
// undefined in the mask. If the mask ends up all true (or undef), it
60206019
// will be folded away by general logic.
60216020
SmallVector<SDValue> MaskVals;
6022-
for (unsigned i = 0; i != Mask.size(); ++i) {
6023-
int M = Mask[i];
6024-
if (M < 0 || (SrcInfo[1].second > 0 && i < (unsigned)SrcInfo[1].second)) {
6021+
for (const auto &[Idx, M] : enumerate(Mask)) {
6022+
if (M < 0 ||
6023+
(SrcInfo[1].second > 0 && Idx < (unsigned)SrcInfo[1].second)) {
60256024
MaskVals.push_back(DAG.getUNDEF(XLenVT));
60266025
continue;
60276026
}
60286027
int Src = M >= (int)NumElts;
6029-
int Diff = (int)i - (M % NumElts);
6028+
int Diff = (int)Idx - (M % NumElts);
60306029
bool C = Src == SrcInfo[1].first && Diff == SrcInfo[1].second;
60316030
assert(C ^ (Src == SrcInfo[0].first && Diff == SrcInfo[0].second) &&
60326031
"Must match exactly one of the two slides");
@@ -21938,22 +21937,21 @@ void RISCVTargetLowering::analyzeInputArgs(
2193821937
MachineFunction &MF, CCState &CCInfo,
2193921938
const SmallVectorImpl<ISD::InputArg> &Ins, bool IsRet,
2194021939
RISCVCCAssignFn Fn) const {
21941-
unsigned NumArgs = Ins.size();
2194221940
FunctionType *FType = MF.getFunction().getFunctionType();
2194321941

21944-
for (unsigned i = 0; i != NumArgs; ++i) {
21945-
MVT ArgVT = Ins[i].VT;
21946-
ISD::ArgFlagsTy ArgFlags = Ins[i].Flags;
21942+
for (const auto &[Idx, In] : enumerate(Ins)) {
21943+
MVT ArgVT = In.VT;
21944+
ISD::ArgFlagsTy ArgFlags = In.Flags;
2194721945

2194821946
Type *ArgTy = nullptr;
2194921947
if (IsRet)
2195021948
ArgTy = FType->getReturnType();
21951-
else if (Ins[i].isOrigArg())
21952-
ArgTy = FType->getParamType(Ins[i].getOrigArgIndex());
21949+
else if (In.isOrigArg())
21950+
ArgTy = FType->getParamType(In.getOrigArgIndex());
2195321951

21954-
if (Fn(i, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, CCInfo,
21952+
if (Fn(Idx, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, CCInfo,
2195521953
/*IsFixed=*/true, IsRet, ArgTy)) {
21956-
LLVM_DEBUG(dbgs() << "InputArg #" << i << " has unhandled type "
21954+
LLVM_DEBUG(dbgs() << "InputArg #" << Idx << " has unhandled type "
2195721955
<< ArgVT << '\n');
2195821956
llvm_unreachable(nullptr);
2195921957
}
@@ -21964,16 +21962,14 @@ void RISCVTargetLowering::analyzeOutputArgs(
2196421962
MachineFunction &MF, CCState &CCInfo,
2196521963
const SmallVectorImpl<ISD::OutputArg> &Outs, bool IsRet,
2196621964
CallLoweringInfo *CLI, RISCVCCAssignFn Fn) const {
21967-
unsigned NumArgs = Outs.size();
21968-
21969-
for (unsigned i = 0; i != NumArgs; i++) {
21970-
MVT ArgVT = Outs[i].VT;
21971-
ISD::ArgFlagsTy ArgFlags = Outs[i].Flags;
21972-
Type *OrigTy = CLI ? CLI->getArgs()[Outs[i].OrigArgIndex].Ty : nullptr;
21973-
21974-
if (Fn(i, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, CCInfo,
21975-
Outs[i].IsFixed, IsRet, OrigTy)) {
21976-
LLVM_DEBUG(dbgs() << "OutputArg #" << i << " has unhandled type "
21965+
for (const auto &[Idx, Out] : enumerate(Outs)) {
21966+
MVT ArgVT = Out.VT;
21967+
ISD::ArgFlagsTy ArgFlags = Out.Flags;
21968+
Type *OrigTy = CLI ? CLI->getArgs()[Out.OrigArgIndex].Ty : nullptr;
21969+
21970+
if (Fn(Idx, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, CCInfo, Out.IsFixed,
21971+
IsRet, OrigTy)) {
21972+
LLVM_DEBUG(dbgs() << "OutputArg #" << Idx << " has unhandled type "
2197721973
<< ArgVT << "\n");
2197821974
llvm_unreachable(nullptr);
2197921975
}

0 commit comments

Comments
 (0)