Bug 42856 - Enable the jit on arm
Summary: Enable the jit on arm
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Linux
: P2 Enhancement
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-22 16:22 PDT by Riccardo Magliocchetti
Modified: 2010-07-24 05:54 PDT (History)
2 users (show)

See Also:


Attachments
enable arm jit compilation (1.11 KB, patch)
2010-07-22 16:22 PDT, Riccardo Magliocchetti
riccardo.magliocchetti: review-
Details | Formatted Diff | Diff
enable arm jit compilation v2 (1.20 KB, patch)
2010-07-23 05:30 PDT, Riccardo Magliocchetti
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Riccardo Magliocchetti 2010-07-22 16:22:42 PDT
Created attachment 62357 [details]
enable arm jit compilation

The jit appears to work fine, compile and tested on debian sid armel.

FYI, These are the results from sunspider-0.9 with GtkLauncher on qemu virtual machine with 128MB:

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 30555.4ms +/- 0.7%
--------------------------------------------

  3d:                   6582.0ms +/- 4.3%
    cube:               2696.4ms +/- 7.8%
    morph:              1830.2ms +/- 5.9%
    raytrace:           2055.4ms +/- 2.8%

  access:               3339.4ms +/- 4.7%
    binary-trees:        289.4ms +/- 12.5%
    fannkuch:            341.2ms +/- 4.4%
    nbody:              2590.8ms +/- 5.2%
    nsieve:              118.0ms +/- 5.9%

  bitops:                956.6ms +/- 2.0%
    3bit-bits-in-byte:    81.2ms +/- 1.3%
    bits-in-byte:        107.2ms +/- 1.0%
    bitwise-and:          86.4ms +/- 3.9%
    nsieve-bits:         681.8ms +/- 2.2%

  controlflow:            72.4ms +/- 3.6%
    recursive:            72.4ms +/- 3.6%

  crypto:               2289.8ms +/- 3.0%
    aes:                 594.0ms +/- 5.0%
    md5:                 804.8ms +/- 1.2%
    sha1:                891.0ms +/- 6.5%

  date:                 2014.6ms +/- 1.6%
    format-tofte:        850.4ms +/- 2.2%
    format-xparb:       1164.2ms +/- 2.0%

  math:                 9396.0ms +/- 2.8%
    cordic:             2426.4ms +/- 7.6%
    partial-sums:       5880.4ms +/- 2.3%
    spectral-norm:      1089.2ms +/- 3.7%

  regexp:                266.0ms +/- 3.4%
    dna:                 266.0ms +/- 3.4%

  string:               5638.6ms +/- 1.5%
    base64:              691.4ms +/- 4.7%
    fasta:              1395.2ms +/- 3.8%
    tagcloud:            887.2ms +/- 0.8%
    unpack-code:        1605.2ms +/- 2.0%
    validate-input:     1059.6ms +/- 2.1%
Comment 1 Riccardo Magliocchetti 2010-07-23 02:19:03 PDT
And these are the results on openmoko freerunner gta02, not a fair comparison since the webit version is older, 1.2.1 vs 1.3.3+git and i've used different browsers, midori vs gtklauncher. Said that the improvement is huge i'm pretty confident the arm jit helps.

The numbers are on par with chromium (bit slower actually) on the same hardware and same os. See
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=589057

midori + libwebkit 1.2.1:

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                  53543.0ms +/- 1.3%
--------------------------------------------

  3d:                   13435.8ms +/- 1.2%
    cube:                2088.2ms +/- 2.0%
    morph:               8976.8ms +/- 1.7%
    raytrace:            2370.8ms +/- 0.8%

  access:                5891.8ms +/- 5.1%
    binary-trees:         356.0ms +/- 11.9%
    fannkuch:            2096.2ms +/- 12.1%
    nbody:               2597.6ms +/- 2.2%
    nsieve:               842.0ms +/- 0.2%

  bitops:                2918.4ms +/- 0.4%
    3bit-bits-in-byte:    578.0ms +/- 2.0%
    bits-in-byte:         424.0ms +/- 0.4%
    bitwise-and:          415.2ms +/- 2.3%
    nsieve-bits:         1501.2ms +/- 0.6%

  controlflow:            520.8ms +/- 0.2%
    recursive:            520.8ms +/- 0.2%

  crypto:                2478.8ms +/- 0.4%
    aes:                  763.0ms +/- 0.5%
    md5:                  856.2ms +/- 1.0%
    sha1:                 859.6ms +/- 0.1%

  date:                  4053.2ms +/- 2.0%
    format-tofte:        1796.8ms +/- 0.4%
    format-xparb:        2256.4ms +/- 3.7%

  math:                 12089.8ms +/- 2.4%
    cordic:              2014.8ms +/- 6.6%
    partial-sums:        8216.4ms +/- 3.9%
    spectral-norm:       1858.6ms +/- 0.1%

  regexp:                3336.2ms +/- 1.2%
    dna:                 3336.2ms +/- 1.2%

  string:                8818.2ms +/- 0.3%
    base64:               597.4ms +/- 1.7%
    fasta:               1124.8ms +/- 0.2%
    tagcloud:            1757.6ms +/- 0.3%
    unpack-code:         3239.4ms +/- 1.0%
    validate-input:      2099.0ms +/- 0.3%


GtkLauncher WebKit git master + arm jit

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                  31712.8ms +/- 0.5%
--------------------------------------------

  3d:                    5926.8ms +/- 1.2%
    cube:                2025.0ms +/- 1.4%
    morph:               1619.2ms +/- 2.9%
    raytrace:            2282.6ms +/- 2.4%

  access:                3267.0ms +/- 1.9%
    binary-trees:         196.8ms +/- 1.4%
    fannkuch:             330.2ms +/- 1.2%
    nbody:               2510.8ms +/- 1.7%
    nsieve:               229.2ms +/- 15.5%

  bitops:                 850.8ms +/- 6.6%
    3bit-bits-in-byte:     70.2ms +/- 3.2%
    bits-in-byte:         140.2ms +/- 38.3%
    bitwise-and:           93.2ms +/- 2.9%
    nsieve-bits:          547.2ms +/- 0.3%

  controlflow:             55.8ms +/- 4.0%
    recursive:             55.8ms +/- 4.0%

  crypto:                1414.2ms +/- 1.0%
    aes:                  461.0ms +/- 3.4%
    md5:                  513.0ms +/- 0.3%
    sha1:                 440.2ms +/- 0.5%

  date:                  3756.0ms +/- 1.5%
    format-tofte:        1420.2ms +/- 0.9%
    format-xparb:        2335.8ms +/- 2.2%

  math:                 10277.8ms +/- 0.4%
    cordic:              1431.4ms +/- 3.1%
    partial-sums:        7924.4ms +/- 0.4%
    spectral-norm:        922.0ms +/- 5.2%

  regexp:                 361.8ms +/- 1.0%
    dna:                  361.8ms +/- 1.0%

  string:                5802.6ms +/- 0.3%
    base64:               338.0ms +/- 0.7%
    fasta:                854.6ms +/- 0.1%
    tagcloud:            1162.4ms +/- 0.4%
    unpack-code:         1843.8ms +/- 0.5%
    validate-input:      1603.8ms +/- 1.3%
Comment 2 Alejandro G. Castro 2010-07-23 03:11:21 PDT
I have not tested it but the patch looks good to me. WRT style check the information about changelogs in this URL to create an entry and set review+ flag:

http://webkit.org/coding/contributing.html#changelogs
Comment 3 Riccardo Magliocchetti 2010-07-23 05:30:19 PDT
Created attachment 62417 [details]
enable arm jit compilation v2
Comment 4 Xan Lopez 2010-07-24 03:50:34 PDT
Comment on attachment 62417 [details]
enable arm jit compilation v2

Looks good to me, thank you!
Comment 5 WebKit Commit Bot 2010-07-24 05:54:48 PDT
Comment on attachment 62417 [details]
enable arm jit compilation v2

Clearing flags on attachment: 62417

Committed r64008: <http://trac.webkit.org/changeset/64008>
Comment 6 WebKit Commit Bot 2010-07-24 05:54:52 PDT
All reviewed patches have been landed.  Closing bug.