Bug 42856

Summary: Enable the jit on arm
Product: WebKit Reporter: Riccardo Magliocchetti <riccardo.magliocchetti>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Enhancement CC: alex, commit-queue
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Attachments:
Description Flags
enable arm jit compilation
riccardo.magliocchetti: review-
enable arm jit compilation v2 none

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.