aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jit
diff options
context:
space:
mode:
authorRobin Burchell <robin.burchell@viroteck.net>2014-12-22 15:32:06 +0100
committerRobin Burchell <robin.burchell@viroteck.net>2015-01-09 12:41:21 +0100
commit32b6630a750850cd3d33df55b6f298fb2de23b3a (patch)
tree0fb166c1d040f64a7f13f1e42d8ddfb55bcf896c /src/qml/jit
parentdc5e5cbaa40db751628888d35125486c1249444b (diff)
V4 JIT: Hoist QVector allocation out of a loop.
Use erase() each loop iteration, but preserve the underlying allocation. Change-Id: I673766f5567794215465daa597a4839a4900450b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jit')
-rw-r--r--src/qml/jit/qv4regalloc.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/jit/qv4regalloc.cpp b/src/qml/jit/qv4regalloc.cpp
index 330714db8c..64cbdf9f3b 100644
--- a/src/qml/jit/qv4regalloc.cpp
+++ b/src/qml/jit/qv4regalloc.cpp
@@ -853,12 +853,14 @@ private:
void renumber()
{
+ QVector<Stmt *> newStatements;
+
foreach (BasicBlock *bb, _function->basicBlocks()) {
_currentStmt = 0;
QVector<Stmt *> statements = bb->statements();
- QVector<Stmt *> newStatements;
newStatements.reserve(bb->statements().size() + 7);
+ newStatements.erase(newStatements.begin(), newStatements.end());
cleanOldIntervals(_intervals->startPosition(bb));
addNewIntervals(_intervals->startPosition(bb));