Bug 28259 - [QT] Enable ARM JIT and YARR by default
Summary: [QT] Enable ARM JIT and YARR by default
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-13 08:25 PDT by Gabor Loki
Modified: 2009-08-14 02:18 PDT (History)
2 users (show)

See Also:


Attachments
SunSpider results, comparision of interpreter and JIT + YARR_JIT (3.80 KB, text/plain)
2009-08-14 00:15 PDT, Gabor Loki
no flags Details
SunSpider results, comparision of interpreter and YARR_JIT (3.92 KB, text/plain)
2009-08-14 00:17 PDT, Gabor Loki
no flags Details
SunSpider results, comparision of interpreter and JIT without YARR (3.83 KB, text/plain)
2009-08-14 00:18 PDT, Gabor Loki
no flags Details
Enable YARR_JIT on ARM for QT (1.66 KB, patch)
2009-08-14 01:39 PDT, Gabor Loki
hausmann: review+
Details | Formatted Diff | Diff
Enable JIT on ARM for QT (2.00 KB, patch)
2009-08-14 01:39 PDT, Gabor Loki
hausmann: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Gabor Loki 2009-08-13 08:25:26 PDT
Because the bug 24986 has been fixed, we can enable ARM JIT and YARR for QT.

I am going to send some results from N810 and the patch to enable ARM JIT tomorrow.
Comment 1 Kenneth Rohde Christiansen 2009-08-13 09:52:33 PDT
I wonder if we should enable it by default and have a way to disable it while compiling Qt, as it does use more memory. What do you guys think?
Comment 2 Gabor Loki 2009-08-13 10:24:01 PDT
I would like to use PLATFORM(QT) && PLATFORM(LINUX) && PLATFORM(ARM) && !PLATFORM_ARM_ARCH(7) or something similar to enable ARM JIT.

I am going to upload some results first about it (mem. and speed as well) tomorrow, than a patch.

Anyway, the JIT can be disabled with ENABLE_JIT=0, ENABLE_YARR_JIT=0 defines in any time.
Comment 3 Gabor Loki 2009-08-14 00:15:33 PDT
Created attachment 34815 [details]
SunSpider results, comparision of interpreter and JIT + YARR_JIT

This results was measured with r47187 on N810.
The 'FROM' column is the interpreter and the 'TO' column is the JIT + YARR_JIT.
Comment 4 Gabor Loki 2009-08-14 00:17:15 PDT
Created attachment 34817 [details]
SunSpider results, comparision of interpreter and YARR_JIT

Measured with r47187 on N810.
The 'FROM' column is the interpreter and the 'TO' column is the YARR_JIT.
Comment 5 Gabor Loki 2009-08-14 00:18:11 PDT
Created attachment 34818 [details]
SunSpider results, comparision of interpreter and JIT without YARR

Measured with r47187 on N810.
The 'FROM' column is the interpreter and the 'TO' column is the JIT without YARR.
Comment 6 Gabor Loki 2009-08-14 01:18:31 PDT
I did a fast measurement to get the max RSS during a SunSpider run. The sampling rate was one per second. This method is not an exact one, but it can help to get an overview about memory consumption. We are going to measure the RSS on a precise way as well, but this takes time.

Here comes the relative comparisons (max RSS):
* Interpreter => JIT + YARR_JIT:   1.077x bigger RSS
* Interpreter => YARR_JIT:         1.003x smaller RSS
* Interpreter => JIT without YARR: 1.088x bigger RSS

The absolute numbers are:
* Interpreter:      2540 pages
* JIT:              2735 pages
* YARR_JIT:         2533 pages
* JIT without YARR: 2764 pages

So the JIT consumes 7-8% extra memory (195-224 pages).
Comment 7 Gabor Loki 2009-08-14 01:39:08 PDT
Created attachment 34820 [details]
Enable YARR_JIT on ARM for QT
Comment 8 Gabor Loki 2009-08-14 01:39:50 PDT
Created attachment 34821 [details]
Enable JIT on ARM for QT
Comment 9 Simon Hausmann 2009-08-14 02:14:02 PDT
Comment on attachment 34820 [details]
Enable YARR_JIT on ARM for QT

r=me
Comment 10 Simon Hausmann 2009-08-14 02:14:38 PDT
Comment on attachment 34821 [details]
Enable JIT on ARM for QT

r=me
Comment 11 Simon Hausmann 2009-08-14 02:18:14 PDT
Landed in r47273 and r47274