mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Prefer SmallVector::append/insert over push_back loops.
Same functionality, but hoists the vector growth out of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229500 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -137,13 +137,9 @@ static void CheckForPhysRegDependency(SDNode *Def, SDNode *User, unsigned Op,
|
||||
}
|
||||
|
||||
// Helper for AddGlue to clone node operands.
|
||||
static void CloneNodeWithValues(SDNode *N, SelectionDAG *DAG,
|
||||
SmallVectorImpl<EVT> &VTs,
|
||||
static void CloneNodeWithValues(SDNode *N, SelectionDAG *DAG, ArrayRef<EVT> VTs,
|
||||
SDValue ExtraOper = SDValue()) {
|
||||
SmallVector<SDValue, 8> Ops;
|
||||
for (unsigned I = 0, E = N->getNumOperands(); I != E; ++I)
|
||||
Ops.push_back(N->getOperand(I));
|
||||
|
||||
SmallVector<SDValue, 8> Ops(N->op_begin(), N->op_end());
|
||||
if (ExtraOper.getNode())
|
||||
Ops.push_back(ExtraOper);
|
||||
|
||||
@@ -165,7 +161,6 @@ static void CloneNodeWithValues(SDNode *N, SelectionDAG *DAG,
|
||||
}
|
||||
|
||||
static bool AddGlue(SDNode *N, SDValue Glue, bool AddGlue, SelectionDAG *DAG) {
|
||||
SmallVector<EVT, 4> VTs;
|
||||
SDNode *GlueDestNode = Glue.getNode();
|
||||
|
||||
// Don't add glue from a node to itself.
|
||||
@@ -179,9 +174,7 @@ static bool AddGlue(SDNode *N, SDValue Glue, bool AddGlue, SelectionDAG *DAG) {
|
||||
// Don't add glue to something that already has a glue value.
|
||||
if (N->getValueType(N->getNumValues() - 1) == MVT::Glue) return false;
|
||||
|
||||
for (unsigned I = 0, E = N->getNumValues(); I != E; ++I)
|
||||
VTs.push_back(N->getValueType(I));
|
||||
|
||||
SmallVector<EVT, 4> VTs(N->value_begin(), N->value_end());
|
||||
if (AddGlue)
|
||||
VTs.push_back(MVT::Glue);
|
||||
|
||||
@@ -197,11 +190,8 @@ static void RemoveUnusedGlue(SDNode *N, SelectionDAG *DAG) {
|
||||
!N->hasAnyUseOfValue(N->getNumValues() - 1)) &&
|
||||
"expected an unused glue value");
|
||||
|
||||
SmallVector<EVT, 4> VTs;
|
||||
for (unsigned I = 0, E = N->getNumValues()-1; I != E; ++I)
|
||||
VTs.push_back(N->getValueType(I));
|
||||
|
||||
CloneNodeWithValues(N, DAG, VTs);
|
||||
CloneNodeWithValues(N, DAG,
|
||||
makeArrayRef(N->value_begin(), N->getNumValues() - 1));
|
||||
}
|
||||
|
||||
/// ClusterNeighboringLoads - Force nearby loads together by "gluing" them.
|
||||
|
Reference in New Issue
Block a user