diff options
author | Erik Verbruggen <erik.verbruggen@me.com> | 2013-09-01 15:45:53 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-13 11:41:23 +0200 |
commit | 9c82c105a1886473ca144b802ce9f5bec01e35e8 (patch) | |
tree | 2caeb5945e2b60f49ba046ec50a45c0bec4f2f7d /src/qml/compiler/qv4instr_moth_p.h | |
parent | 0ef673efe8bf381e1aa0202752deac27e86ada53 (diff) |
V4: Fix SSA decomposition when no regalloc is used.
Add scheduling for moves generated by removing phi nodes by re-using the
MoveMapping class from the register allocator. This change applies to
both the JIT when no register allocator is used, and the interpreter.
Change-Id: I38eac5b13759c7790132d1ef07fa17fcb53187e3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/compiler/qv4instr_moth_p.h')
-rw-r--r-- | src/qml/compiler/qv4instr_moth_p.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/qml/compiler/qv4instr_moth_p.h b/src/qml/compiler/qv4instr_moth_p.h index 25c8ac512c..af1ca0ae76 100644 --- a/src/qml/compiler/qv4instr_moth_p.h +++ b/src/qml/compiler/qv4instr_moth_p.h @@ -56,6 +56,7 @@ QT_BEGIN_NAMESPACE F(LoadRegExp, loadRegExp) \ F(LoadClosure, loadClosure) \ F(MoveTemp, moveTemp) \ + F(SwapTemps, swapTemps) \ F(LoadName, loadName) \ F(StoreName, storeName) \ F(LoadElement, loadElement) \ @@ -228,6 +229,11 @@ union Instr Param source; Param result; }; + struct instr_swapTemps { + MOTH_INSTR_HEADER + Param left; + Param right; + }; struct instr_loadClosure { MOTH_INSTR_HEADER int value; @@ -505,6 +511,7 @@ union Instr instr_loadRuntimeString loadRuntimeString; instr_loadRegExp loadRegExp; instr_moveTemp moveTemp; + instr_swapTemps swapTemps; instr_loadClosure loadClosure; instr_loadName loadName; instr_storeName storeName; |