summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2019-12-16 23:35:29 -0800
committerCraig Topper <craig.topper@gmail.com>2019-12-16 23:42:13 -0800
commit13ce7c1291b95eaadef2c66e372a070b45e207bc (patch)
tree0bdc6db8be22f97ca9c22d7d14616309df955481 /llvm/lib/CodeGen
parentc738ebc1f57e6e1e3c1c798cb9f3385d67d34f8a (diff)
downloadbcm5719-llvm-13ce7c1291b95eaadef2c66e372a070b45e207bc.tar.gz
bcm5719-llvm-13ce7c1291b95eaadef2c66e372a070b45e207bc.zip
[LegalizeTypes] Pre-size the SmallVectors in ScalarizeVecRes_StrictFPOp and SplitVecRes_StrictFPOp so we don't have to call push_back. NFCI
This avoids grow checking/handling in each iteration of the loop.
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
index 7df68113104..200dacd27bc 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
@@ -204,10 +204,10 @@ SDValue DAGTypeLegalizer::ScalarizeVecRes_StrictFPOp(SDNode *N) {
EVT ValueVTs[] = {VT, MVT::Other};
SDLoc dl(N);
- SmallVector<SDValue, 4> Opers;
+ SmallVector<SDValue, 4> Opers(NumOpers);
// The Chain is the first operand.
- Opers.push_back(Chain);
+ Opers[0] = Chain;
// Now process the remaining operands.
for (unsigned i = 1; i < NumOpers; ++i) {
@@ -216,7 +216,7 @@ SDValue DAGTypeLegalizer::ScalarizeVecRes_StrictFPOp(SDNode *N) {
if (Oper.getValueType().isVector())
Oper = GetScalarizedVector(Oper);
- Opers.push_back(Oper);
+ Opers[i] = Oper;
}
SDValue Result = DAG.getNode(N->getOpcode(), dl, ValueVTs, Opers);
@@ -1245,12 +1245,12 @@ void DAGTypeLegalizer::SplitVecRes_StrictFPOp(SDNode *N, SDValue &Lo,
SDLoc dl(N);
std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0));
- SmallVector<SDValue, 4> OpsLo;
- SmallVector<SDValue, 4> OpsHi;
+ SmallVector<SDValue, 4> OpsLo(NumOps);
+ SmallVector<SDValue, 4> OpsHi(NumOps);
// The Chain is the first operand.
- OpsLo.push_back(Chain);
- OpsHi.push_back(Chain);
+ OpsLo[0] = Chain;
+ OpsHi[0] = Chain;
// Now process the remaining operands.
for (unsigned i = 1; i < NumOps; ++i) {
@@ -1268,8 +1268,8 @@ void DAGTypeLegalizer::SplitVecRes_StrictFPOp(SDNode *N, SDValue &Lo,
std::tie(OpLo, OpHi) = DAG.SplitVectorOperand(N, i);
}
- OpsLo.push_back(OpLo);
- OpsHi.push_back(OpHi);
+ OpsLo[i] = OpLo;
+ OpsHi[i] = OpHi;
}
EVT LoValueVTs[] = {LoVT, MVT::Other};
OpenPOWER on IntegriCloud