Bug 71686 - Enable DFG JIT by default on X86 Linux and Mac platforms
Summary: Enable DFG JIT by default on X86 Linux and Mac platforms
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on: 71684 71762 71768
Blocks:
  Show dependency treegraph
 
Reported: 2011-11-07 07:33 PST by Yuqiang Xian
Modified: 2011-11-09 03:42 PST (History)
4 users (show)

See Also:


Attachments
proposed patch (1.63 KB, patch)
2011-11-07 07:47 PST, Yuqiang Xian
webkit-ews: commit-queue-
Details | Formatted Diff | Diff
proposed patch (3.28 KB, patch)
2011-11-08 01:13 PST, Yuqiang Xian
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yuqiang Xian 2011-11-07 07:33:33 PST
From my testing, with the fix for bug #71684, I see no regression on Linux and Mac 32bit platforms if turning on DFG JIT for layout tests and JavaScriptCore tests.

Performance result tested on Linux IA32 is here (on Core i7 Nehalem @ 2.80GHz, OpenSuSE 11.4):

SunSpider:

TEST                   COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **:           1.091x as fast    229.8ms +/- 0.5%   210.7ms +/- 0.3%     significant

=============================================================================

  3d:                  -                  32.3ms +/- 5.3%    31.2ms +/- 1.0%
    cube:              -                  11.1ms +/- 12.3%    11.1ms +/- 2.0%
    morph:             -                  10.2ms +/- 4.4%    10.0ms +/- 0.0%
    raytrace:          1.089x as fast     11.0ms +/- 0.0%    10.1ms +/- 2.2%     significant

  access:              1.88x as fast      35.7ms +/- 1.0%    19.0ms +/- 0.0%     significant
    binary-trees:      1.50x as fast       3.0ms +/- 0.0%     2.0ms +/- 0.0%     significant
    fannkuch:          1.97x as fast      17.7ms +/- 2.0%     9.0ms +/- 0.0%     significant
    nbody:             2.00x as fast      10.0ms +/- 0.0%     5.0ms +/- 0.0%     significant
    nsieve:            1.67x as fast       5.0ms +/- 0.0%     3.0ms +/- 0.0%     significant

  bitops:              1.30x as fast      19.4ms +/- 1.9%    14.9ms +/- 1.5%     significant
    3bit-bits-in-byte: 2.00x as fast       2.0ms +/- 0.0%     1.0ms +/- 0.0%     significant
    bits-in-byte:      1.35x as fast       5.4ms +/- 6.8%     4.0ms +/- 0.0%     significant
    bitwise-and:       1.54x as fast       6.0ms +/- 0.0%     3.9ms +/- 5.8%     significant
    nsieve-bits:       -                   6.0ms +/- 0.0%     6.0ms +/- 0.0%

  controlflow:         *1.20x as slow*     2.0ms +/- 0.0%     2.4ms +/- 15.4%     significant
    recursive:         *1.20x as slow*     2.0ms +/- 0.0%     2.4ms +/- 15.4%     significant

  crypto:              *1.133x as slow*   15.0ms +/- 2.2%    17.0ms +/- 0.0%     significant
    aes:               *1.24x as slow*     8.9ms +/- 2.5%    11.0ms +/- 0.0%     significant
    md5:               -                   3.1ms +/- 7.3%     3.0ms +/- 0.0%
    sha1:              -                   3.0ms +/- 0.0%     3.0ms +/- 0.0%

  date:                *1.050x as slow*   22.1ms +/- 1.0%    23.2ms +/- 1.3%     significant
    format-tofte:      *1.099x as slow*   11.1ms +/- 2.0%    12.2ms +/- 2.5%     significant
    format-xparb:      -                  11.0ms +/- 0.0%    11.0ms +/- 0.0%

  math:                1.115x as fast     26.1ms +/- 0.9%    23.4ms +/- 2.1%     significant
    cordic:            ??                  8.1ms +/- 2.8%     8.3ms +/- 4.2%     not conclusive: might be *1.025x as slow*
    partial-sums:      ??                 13.0ms +/- 0.0%    13.1ms +/- 1.7%     not conclusive: might be *1.008x as slow*
    spectral-norm:     2.50x as fast       5.0ms +/- 0.0%     2.0ms +/- 0.0%     significant

  regexp:              -                  16.0ms +/- 0.0%    16.0ms +/- 0.0%
    dna:               -                  16.0ms +/- 0.0%    16.0ms +/- 0.0%

  string:              *1.039x as slow*   61.2ms +/- 0.5%    63.6ms +/- 0.6%     significant
    base64:            -                   5.0ms +/- 0.0%     5.0ms +/- 0.0%
    fasta:             *1.087x as slow*    9.2ms +/- 3.3%    10.0ms +/- 0.0%     significant
    tagcloud:          *1.033x as slow*   15.0ms +/- 0.0%    15.5ms +/- 2.4%     significant
    unpack-code:       *1.044x as slow*   25.0ms +/- 0.0%    26.1ms +/- 0.9%     significant
    validate-input:    -                   7.0ms +/- 0.0%     7.0ms +/- 0.0%


Kraken:

TEST                         COMPARISON            FROM                 TO             DETAILS

=============================================================================

** TOTAL **:                 1.89x as fast     9819.4ms +/- 0.1%   5192.6ms +/- 0.1%     significant

=============================================================================

  ai:                        2.61x as fast     2067.4ms +/- 0.1%    791.2ms +/- 0.2%     significant
    astar:                   2.61x as fast     2067.4ms +/- 0.1%    791.2ms +/- 0.2%     significant

  audio:                     1.52x as fast     2217.5ms +/- 0.1%   1456.9ms +/- 0.3%     significant
    beat-detection:          1.57x as fast      667.0ms +/- 0.1%    424.8ms +/- 0.8%     significant
    dft:                     1.54x as fast      580.9ms +/- 0.3%    376.4ms +/- 0.3%     significant
    fft:                     2.04x as fast      523.3ms +/- 0.1%    255.9ms +/- 0.7%     significant
    oscillator:              1.116x as fast     446.3ms +/- 0.2%    399.8ms +/- 0.2%     significant

  imaging:                   1.99x as fast     4087.0ms +/- 0.2%   2057.1ms +/- 0.2%     significant
    gaussian-blur:           3.39x as fast     2543.4ms +/- 0.2%    750.6ms +/- 0.1%     significant
    darkroom:                1.51x as fast      631.7ms +/- 0.2%    417.6ms +/- 0.7%     significant
    desaturate:              1.026x as fast     911.9ms +/- 0.5%    888.9ms +/- 0.2%     significant

  json:                      *1.026x as slow*   188.9ms +/- 0.4%    193.8ms +/- 0.8%     significant
    parse-financial:         *1.012x as slow*    67.8ms +/- 0.4%     68.6ms +/- 0.5%     significant
    stringify-tinderbox:     *1.034x as slow*   121.1ms +/- 0.6%    125.2ms +/- 1.3%     significant

  stanford:                  1.81x as fast     1258.6ms +/- 0.2%    693.6ms +/- 0.3%     significant
    crypto-aes:              1.20x as fast      166.0ms +/- 1.2%    138.0ms +/- 0.5%     significant
    crypto-ccm:              *1.091x as slow*   136.4ms +/- 0.4%    148.8ms +/- 0.4%     significant
    crypto-pbkdf2:           2.45x as fast      720.0ms +/- 0.2%    294.2ms +/- 0.5%     significant
    crypto-sha256-iterative: 2.10x as fast      236.2ms +/- 0.3%    112.6ms +/- 0.3%     significant


V8:

From -
Richards: 3774
DeltaBlue: 3547
Crypto: 4290
RayTrace: 6277
EarleyBoyer: 6605
RegExp: 1886
Splay: 4299
----
Score (version 6): 4095

To -
Richards: 6986
DeltaBlue: 4780
Crypto: 11263
RayTrace: 7584
EarleyBoyer: 6729
RegExp: 1849
Splay: 4947
----
Score (version 6): 5613 (+37%)
Comment 1 Yuqiang Xian 2011-11-07 07:47:38 PST
Created attachment 113865 [details]
proposed patch

This can be reviewed only if bug #71684 is fixed.
Comment 2 Early Warning System Bot 2011-11-07 08:02:57 PST
Comment on attachment 113865 [details]
proposed patch

Attachment 113865 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10332656
Comment 3 Yuqiang Xian 2011-11-07 21:04:25 PST
(In reply to comment #2)
> (From update of attachment 113865 [details])
> Attachment 113865 [details] did not pass qt-ews (qt):
> Output: http://queues.webkit.org/results/10332656

Looks like a compiler specific issue. I cannot reproduce this warning on Qt port using gcc 4.5 on OpenSuSE 11.4. However I'll try to find a way to bypass this issue.
Comment 4 Yuqiang Xian 2011-11-07 21:35:51 PST
Bug #71762 is created to fix the qt port build issue.
Comment 5 Gavin Barraclough 2011-11-07 22:05:12 PST
Looks great, once the qt issue is fixed.  When r71762 has landed, could you kick off a fresh EWS run, and then we can r+ once we have all green results.
Comment 6 Yuqiang Xian 2011-11-07 22:58:25 PST
Adding another dependency - bug #71768.
Comment 7 Yuqiang Xian 2011-11-08 01:13:20 PST
Created attachment 114009 [details]
proposed patch

Re-submit the patch as the dependencies should have been resolved.
Comment 8 Filip Pizlo 2011-11-08 02:52:48 PST
Comment on attachment 114009 [details]
proposed patch

r=me.
Comment 9 Yuqiang Xian 2011-11-08 05:48:47 PST
Comment on attachment 114009 [details]
proposed patch

Going to land it manually.
Comment 10 Yuqiang Xian 2011-11-08 05:54:11 PST
Manually landed as r99559.

But seems I have no idea of how to cancel the commit queue. Any tips? Thanks.
Comment 11 Filip Pizlo 2011-11-08 13:40:41 PST
(In reply to comment #10)
> Manually landed as r99559.
> 
> But seems I have no idea of how to cancel the commit queue. Any tips? Thanks.

You did it right.  I think it'll realize by the time it goes to commit that the cq flag was minus'd.  And even if it didn't and you had already landed manually, then it should bail out because of conflicts.
Comment 12 Csaba Osztrogonác 2011-11-09 03:42:27 PST
FYI: Stricter compilers needs a buildfix for this patch. I attached the buildfix for 32 and 64 bit to the x86_64 bug: https://bugs.webkit.org/show_bug.cgi?id=71373#c15
Comment 13 Csaba Osztrogonác 2011-11-09 03:42:46 PST
Comment on attachment 114009 [details]
proposed patch

Remove r+ from landed patch.