VarAction2: Use reserve and shrink_to_fit for DSG adjusts vector
This commit is contained in:
@@ -6014,6 +6014,9 @@ static void NewSpriteGroup(ByteReader *buf)
|
|||||||
/* Continue reading var adjusts while bit 5 is set. */
|
/* Continue reading var adjusts while bit 5 is set. */
|
||||||
} while (HasBit(varadjust, 5));
|
} while (HasBit(varadjust, 5));
|
||||||
|
|
||||||
|
/* shrink_to_fit will be called later */
|
||||||
|
group->adjusts.reserve(current_adjusts.size());
|
||||||
|
|
||||||
for (const DeterministicSpriteGroupAdjust &adjust : current_adjusts) {
|
for (const DeterministicSpriteGroupAdjust &adjust : current_adjusts) {
|
||||||
group->adjusts.push_back(adjust);
|
group->adjusts.push_back(adjust);
|
||||||
OptimiseVarAction2Adjust(va2_opt_state, info, group, group->adjusts.back());
|
OptimiseVarAction2Adjust(va2_opt_state, info, group, group->adjusts.back());
|
||||||
|
@@ -2745,6 +2745,8 @@ void OptimiseVarAction2DeterministicSpriteGroup(VarAction2OptimiseState &state,
|
|||||||
OptimiseVarAction2DeterministicSpriteGroupExpensiveVars(group, info.scope_feature);
|
OptimiseVarAction2DeterministicSpriteGroupExpensiveVars(group, info.scope_feature);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!dse_candidate) group->adjusts.shrink_to_fit();
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::bitset<256> HandleVarAction2DeadStoreElimination(DeterministicSpriteGroup *group, VarAction2GroupVariableTracking *var_tracking, bool no_changes)
|
static std::bitset<256> HandleVarAction2DeadStoreElimination(DeterministicSpriteGroup *group, VarAction2GroupVariableTracking *var_tracking, bool no_changes)
|
||||||
@@ -3141,6 +3143,8 @@ void HandleVarAction2OptimisationPasses()
|
|||||||
if (group->dsg_flags & DSGF_CHECK_INSERT_JUMP) {
|
if (group->dsg_flags & DSGF_CHECK_INSERT_JUMP) {
|
||||||
OptimiseVarAction2DeterministicSpriteResolveJumps(group);
|
OptimiseVarAction2DeterministicSpriteResolveJumps(group);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
group->adjusts.shrink_to_fit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user