Skip to content

Commit e3284d8

Browse files
authored
[GISel] Use SmallVector::append instead of copying one element at a time. (#119321)
1 parent 01512d2 commit e3284d8

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,8 @@ void LegalizerHelper::insertParts(Register DstReg,
182182
// Merge sub-vectors with different number of elements and insert into DstReg.
183183
if (ResultTy.isVector()) {
184184
assert(LeftoverRegs.size() == 1 && "Expected one leftover register");
185-
SmallVector<Register, 8> AllRegs;
186-
for (auto Reg : concat<const Register>(PartRegs, LeftoverRegs))
187-
AllRegs.push_back(Reg);
185+
SmallVector<Register, 8> AllRegs(PartRegs.begin(), PartRegs.end());
186+
AllRegs.append(LeftoverRegs.begin(), LeftoverRegs.end());
188187
return mergeMixedSubvectors(DstReg, AllRegs);
189188
}
190189

@@ -6397,10 +6396,8 @@ LegalizerHelper::narrowScalarAddSub(MachineInstr &MI, unsigned TypeIdx,
63976396
MRI);
63986397

63996398
int NarrowParts = Src1Regs.size();
6400-
for (int I = 0, E = Src1Left.size(); I != E; ++I) {
6401-
Src1Regs.push_back(Src1Left[I]);
6402-
Src2Regs.push_back(Src2Left[I]);
6403-
}
6399+
Src1Regs.append(Src1Left);
6400+
Src2Regs.append(Src2Left);
64046401
DstRegs.reserve(Src1Regs.size());
64056402

64066403
for (int i = 0, e = Src1Regs.size(); i != e; ++i) {
@@ -6572,8 +6569,7 @@ LegalizerHelper::narrowScalarInsert(MachineInstr &MI, unsigned TypeIdx,
65726569
extractParts(MI.getOperand(1).getReg(), RegTy, NarrowTy, LeftoverTy, SrcRegs,
65736570
LeftoverRegs, MIRBuilder, MRI);
65746571

6575-
for (Register Reg : LeftoverRegs)
6576-
SrcRegs.push_back(Reg);
6572+
SrcRegs.append(LeftoverRegs);
65776573

65786574
uint64_t NarrowSize = NarrowTy.getSizeInBits();
65796575
Register OpReg = MI.getOperand(2).getReg();

0 commit comments

Comments
 (0)