diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-07-23 12:22:11 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-08-18 16:05:55 +0200 |
commit | 2ae518d3a4ea994dfb6c120f826ef7c801b70807 (patch) | |
tree | 60b14fe12a75619cfef8494789dd72ddb610ff8b /src/qml/compiler/qv4jsir.cpp | |
parent | 7e5a589b905969a5712b801cec01be257fbc237c (diff) |
V4 IR: Add loop peeling.
By peeling the first iteration off of a loop and putting it in front of
the loop, type inference can deduce more type information for esp. loop
induction variables. To prevent increasing the code size too much, only
the inner-most loops are peeled.
This gives a 10% speed-up on crypto.js.
Change-Id: I57f9611695bc8defc0bff84e440b8a20b2c8a34e
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Diffstat (limited to 'src/qml/compiler/qv4jsir.cpp')
-rw-r--r-- | src/qml/compiler/qv4jsir.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4jsir.cpp b/src/qml/compiler/qv4jsir.cpp index 01020be23e..69b08aaf7a 100644 --- a/src/qml/compiler/qv4jsir.cpp +++ b/src/qml/compiler/qv4jsir.cpp @@ -753,7 +753,7 @@ Stmt *BasicBlock::CJUMP(Expr *cond, BasicBlock *iftrue, BasicBlock *iffalse) return s; } -Stmt *BasicBlock::RET(Temp *expr) +Stmt *BasicBlock::RET(Expr *expr) { Q_ASSERT(!isRemoved()); if (isTerminated()) |