diff options
author | Craig Topper <craig.topper@gmail.com> | 2019-12-16 23:35:29 -0800 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2019-12-16 23:42:13 -0800 |
commit | 13ce7c1291b95eaadef2c66e372a070b45e207bc (patch) | |
tree | 0bdc6db8be22f97ca9c22d7d14616309df955481 /llvm/lib/CodeGen | |
parent | c738ebc1f57e6e1e3c1c798cb9f3385d67d34f8a (diff) | |
download | bcm5719-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.cpp | 18 |
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}; |