diff options
author | Robin Burchell <robin.burchell@viroteck.net> | 2014-12-22 15:32:06 +0100 |
---|---|---|
committer | Robin Burchell <robin.burchell@viroteck.net> | 2015-01-09 12:41:21 +0100 |
commit | 32b6630a750850cd3d33df55b6f298fb2de23b3a (patch) | |
tree | 0fb166c1d040f64a7f13f1e42d8ddfb55bcf896c /src/qml/jit | |
parent | dc5e5cbaa40db751628888d35125486c1249444b (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.cpp | 4 |
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)); |