<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/qml/jit/jit.pri, branch wip/scenegraphng</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>Remove tracing JIT infrastructure</title>
<updated>2019-04-29T09:16:34+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2019-04-18T12:22:10+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=9e5ca92712da3392d1f2957dc1e546cdddd1ce0a'/>
<id>9e5ca92712da3392d1f2957dc1e546cdddd1ce0a</id>
<content type='text'>
The tracing JIT won't be finished. Therefore, remove the parts that have
already been integrated.

Change-Id: If72036be904bd7fc17ba9bcba0a317f8ed6cb30d
Reviewed-by: Erik Verbruggen &lt;erik.verbruggen@me.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The tracing JIT won't be finished. Therefore, remove the parts that have
already been integrated.

Change-Id: If72036be904bd7fc17ba9bcba0a317f8ed6cb30d
Reviewed-by: Erik Verbruggen &lt;erik.verbruggen@me.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>V4 tracing: Add a scheduler for the tracing JIT IR</title>
<updated>2019-03-28T12:52:02+00:00</updated>
<author>
<name>Erik Verbruggen</name>
<email>erik.verbruggen@qt.io</email>
</author>
<published>2018-11-23T11:58:25+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=d9f849b33591458fbb66724e4e6d59a1b87678f2'/>
<id>d9f849b33591458fbb66724e4e6d59a1b87678f2</id>
<content type='text'>
This is a scheduler for the graph nodes, which first reconstructs the
control-flow graph, and then places all remaining nodes inside the basic
blocks.

The output of this pass is an MIFunction (MI = Machine Interface),
which uses a representation suitable for feeding to an assembler. Note
however that it still uses "virtual registers" at this point, so the
next pass will have to place those virtual registers in physical
registers or on a stack.

The code for the dominator tree calculation, block scheduling, loop info
and the blockset were lifted from the 5.10 JIT.

Change-Id: I11c4cc3f64fedba6dd4275b35bbea85d30d76f7d
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a scheduler for the graph nodes, which first reconstructs the
control-flow graph, and then places all remaining nodes inside the basic
blocks.

The output of this pass is an MIFunction (MI = Machine Interface),
which uses a representation suitable for feeding to an assembler. Note
however that it still uses "virtual registers" at this point, so the
next pass will have to place those virtual registers in physical
registers or on a stack.

The code for the dominator tree calculation, block scheduling, loop info
and the blockset were lifted from the 5.10 JIT.

Change-Id: I11c4cc3f64fedba6dd4275b35bbea85d30d76f7d
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>V4: Add a lowering pass to the traced JIT</title>
<updated>2019-03-22T16:11:39+00:00</updated>
<author>
<name>Erik Verbruggen</name>
<email>erik.verbruggen@qt.io</email>
</author>
<published>2018-11-23T11:53:18+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=b92b125455cc01dd48f496d85bdb7a1c96a258fd'/>
<id>b92b125455cc01dd48f496d85bdb7a1c96a258fd</id>
<content type='text'>
This pass converts high-level operations like e.g. a JSAdd to lower
level operations, like a runtime call. This pass will be extended to
take trace information, which can indicate that it can be lowered to
e.g. an AddInt32.

Change-Id: Ieae8df235217189c90048515e199f7e7c7f220b3
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This pass converts high-level operations like e.g. a JSAdd to lower
level operations, like a runtime call. This pass will be extended to
take trace information, which can indicate that it can be lowered to
e.g. an AddInt32.

Change-Id: Ieae8df235217189c90048515e199f7e7c7f220b3
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>V4: Add IR that can use traced information to JIT</title>
<updated>2019-03-04T12:55:16+00:00</updated>
<author>
<name>Erik Verbruggen</name>
<email>erik.verbruggen@qt.io</email>
</author>
<published>2018-11-23T11:50:27+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=80f9634f7e3a1c31cda0c804d811c532aeee103b'/>
<id>80f9634f7e3a1c31cda0c804d811c532aeee103b</id>
<content type='text'>
This is the in a series of patches for a JIT that can use traced
information to generate better code. In this patch, traced information
is not used/stored yet. It allows testing the basic infrastructure
without trying to do any optimizations, therefore making it easier to
debug, test, and review.

Change-Id: I589bdadf731c36542331abe64e1b39e305b6723e
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the in a series of patches for a JIT that can use traced
information to generate better code. In this patch, traced information
is not used/stored yet. It allows testing the basic infrastructure
without trying to do any optimizations, therefore making it easier to
debug, test, and review.

Change-Id: I589bdadf731c36542331abe64e1b39e305b6723e
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>V4: Clean up the runtime functions declarations</title>
<updated>2019-02-05T09:51:29+00:00</updated>
<author>
<name>Erik Verbruggen</name>
<email>erik.verbruggen@qt.io</email>
</author>
<published>2018-11-23T11:44:32+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=2b297cae4b645cb9eebbe7a263c37f80c7f957ae'/>
<id>2b297cae4b645cb9eebbe7a263c37f80c7f957ae</id>
<content type='text'>
The declarations and usage of runtime functions have seen a number of
changes:
- we don't use the array of method pointers anymore because we don't use
  cross-platform AOT JITting
- the check if a method can throw a JS exception was invalid, and was
  not used anymore
- value-pointer vs. const-value-ref was inconsistent

This patch cleans that up. By fixing the exception checking, we can now
use it in the baseline JIT to automatically insert those checks. To make
that work correctly, all runtime methods are in a struct, which gets
annotated to indicate if that method throws. (The old way of checking
which type of engine was used is fragile: some non-throwing methods
do not take an engine parameter at all, and those got flagged as
throwing). By using a struct, we can also get rid of a bunch of
interesting macros.

The flags in the struct (as mentioned above) can later be extended to
capture more information, e.g. if a method will change the context.

Change-Id: I1e0b9ba62a0bf538eb728b4378e2678136e29a64
Reviewed-by: Lars Knoll &lt;lars.knoll@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The declarations and usage of runtime functions have seen a number of
changes:
- we don't use the array of method pointers anymore because we don't use
  cross-platform AOT JITting
- the check if a method can throw a JS exception was invalid, and was
  not used anymore
- value-pointer vs. const-value-ref was inconsistent

This patch cleans that up. By fixing the exception checking, we can now
use it in the baseline JIT to automatically insert those checks. To make
that work correctly, all runtime methods are in a struct, which gets
annotated to indicate if that method throws. (The old way of checking
which type of engine was used is fragile: some non-throwing methods
do not take an engine parameter at all, and those got flagged as
throwing). By using a struct, we can also get rid of a bunch of
interesting macros.

The flags in the struct (as mentioned above) can later be extended to
capture more information, e.g. if a method will change the context.

Change-Id: I1e0b9ba62a0bf538eb728b4378e2678136e29a64
Reviewed-by: Lars Knoll &lt;lars.knoll@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>V4: Split PlatformAssemblerCommon (and base classes) in its own file</title>
<updated>2018-08-27T08:37:12+00:00</updated>
<author>
<name>Erik Verbruggen</name>
<email>erik.verbruggen@qt.io</email>
</author>
<published>2018-06-06T14:29:13+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=bf136379521d543c54d5c0ce377471ff76dce35e'/>
<id>bf136379521d543c54d5c0ce377471ff76dce35e</id>
<content type='text'>
This makes it easier to re-use them later on, without inheriting all
extra stuff that the baseline JIT needs.

Change-Id: I9368b16017b8b9d99f8c005a5b47ec9f9ed09fb0
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes it easier to re-use them later on, without inheriting all
extra stuff that the baseline JIT needs.

Change-Id: I9368b16017b8b9d99f8c005a5b47ec9f9ed09fb0
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Move JIT helper functions into a reusable namespace</title>
<updated>2018-06-27T12:02:26+00:00</updated>
<author>
<name>Erik Verbruggen</name>
<email>erik.verbruggen@qt.io</email>
</author>
<published>2018-06-05T13:41:39+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=eb98186670db90c7420b46e1442ad67b076d9af3'/>
<id>eb98186670db90c7420b46e1442ad67b076d9af3</id>
<content type='text'>
Change-Id: I61a87f56c3713fbab58ebe5b752e67180cd05a21
Reviewed-by: Lars Knoll &lt;lars.knoll@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I61a87f56c3713fbab58ebe5b752e67180cd05a21
Reviewed-by: Lars Knoll &lt;lars.knoll@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename qv4jit* to qv4baselinejit</title>
<updated>2018-05-28T10:24:28+00:00</updated>
<author>
<name>Erik Verbruggen</name>
<email>erik.verbruggen@qt.io</email>
</author>
<published>2018-04-27T11:25:41+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=23aa9d58d006dd50adb3f582df9b7dab4f64be0b'/>
<id>23aa9d58d006dd50adb3f582df9b7dab4f64be0b</id>
<content type='text'>
So it reflects its contents better.

Change-Id: Ie9414117a28e681fbb6220c8cddb41be1481fd44
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So it reflects its contents better.

Change-Id: Ie9414117a28e681fbb6220c8cddb41be1481fd44
Reviewed-by: Simon Hausmann &lt;simon.hausmann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>V4: Add a baseline JIT</title>
<updated>2017-11-17T11:53:42+00:00</updated>
<author>
<name>Erik Verbruggen</name>
<email>erik.verbruggen@qt.io</email>
</author>
<published>2017-11-14T09:45:06+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=3658f534cb1947663d29b9db00dcced462674aed'/>
<id>3658f534cb1947663d29b9db00dcced462674aed</id>
<content type='text'>
This patch add a JIT back in for all platforms that supported JITting
before, with the exception of MIPS.

Change-Id: I51bc5ce3a2ac40e0510bd72a563af897c5b60343
Reviewed-by: Lars Knoll &lt;lars.knoll@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch add a JIT back in for all platforms that supported JITting
before, with the exception of MIPS.

Change-Id: I51bc5ce3a2ac40e0510bd72a563af897c5b60343
Reviewed-by: Lars Knoll &lt;lars.knoll@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove now unused files</title>
<updated>2017-06-30T11:58:44+00:00</updated>
<author>
<name>Lars Knoll</name>
<email>lars.knoll@qt.io</email>
</author>
<published>2017-06-22T08:01:17+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=29e41a9ee61a05274f77f89e9ffd8875f90d3308'/>
<id>29e41a9ee61a05274f77f89e9ffd8875f90d3308</id>
<content type='text'>
Remove all files from the old compiler pipeline that are now
unused. This includes the whole IR, JIT code generation,
and the old Moth Isel.

Change-Id: I50d06abfbcf0e9755a54ed94638f8bb74f9512b1
Reviewed-by: Erik Verbruggen &lt;erik.verbruggen@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove all files from the old compiler pipeline that are now
unused. This includes the whole IR, JIT code generation,
and the old Moth Isel.

Change-Id: I50d06abfbcf0e9755a54ed94638f8bb74f9512b1
Reviewed-by: Erik Verbruggen &lt;erik.verbruggen@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
