Bug 70460 - DFG JIT 32_64 - remove unnecessary double unboxings in fillDouble/fillSpeculateDouble
Summary: DFG JIT 32_64 - remove unnecessary double unboxings in fillDouble/fillSpecula...
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:
Blocks:
 
Reported: 2011-10-19 17:21 PDT by Yuqiang Xian
Modified: 2011-10-19 20:31 PDT (History)
3 users (show)

See Also:


Attachments
the patch (4.23 KB, patch)
2011-10-19 17:38 PDT, 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-10-19 17:21:01 PDT
As pointed out by Gavin in bug #70418, when a value is already in memory we can avoid loading it to two GPRs at first and then unboxing them to a FPR.
Comment 1 Yuqiang Xian 2011-10-19 17:38:40 PDT
Created attachment 111703 [details]
the patch
Comment 2 Yuqiang Xian 2011-10-19 17:40:46 PDT
Performance result based on current code base w/ DFG 32bit turned on (on Linux ia32 Core i7 Nehalem) -

Kraken:

TEST                         COMPARISON            FROM                 TO             DETAILS

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

** TOTAL **:                 1.087x as fast    7272.1ms +/- 0.3%   6688.4ms +/- 0.1%     significant

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

  ai:                        1.002x as fast     797.2ms +/- 0.2%    795.3ms +/- 0.1%     significant
    astar:                   1.002x as fast     797.2ms +/- 0.2%    795.3ms +/- 0.1%     significant

  audio:                     1.116x as fast    2376.4ms +/- 0.8%   2130.0ms +/- 0.2%     significant
    beat-detection:          1.108x as fast     702.2ms +/- 2.7%    634.0ms +/- 0.5%     significant
    dft:                     1.27x as fast      557.7ms +/- 0.2%    439.4ms +/- 0.5%     significant
    fft:                     1.123x as fast     534.6ms +/- 0.4%    476.1ms +/- 0.1%     significant
    oscillator:              -                  581.9ms +/- 0.3%    580.5ms +/- 0.1%

  imaging:                   1.129x as fast    2920.6ms +/- 0.2%   2586.2ms +/- 0.1%     significant
    gaussian-blur:           1.35x as fast     1278.9ms +/- 0.1%    950.8ms +/- 0.1%     significant
    darkroom:                1.003x as fast     715.8ms +/- 0.2%    713.5ms +/- 0.1%     significant
    desaturate:              -                  925.9ms +/- 0.5%    921.9ms +/- 0.3%

  json:                      -                  194.6ms +/- 0.5%    193.9ms +/- 0.5%
    parse-financial:         1.006x as fast      82.1ms +/- 0.3%     81.6ms +/- 0.5%     significant
    stringify-tinderbox:     -                  112.5ms +/- 1.0%    112.3ms +/- 0.8%

  stanford:                  -                  983.3ms +/- 0.2%    983.0ms +/- 0.3%
    crypto-aes:              ??                 164.7ms +/- 0.5%    165.6ms +/- 0.6%     not conclusive: might be *1.005x as slow*
    crypto-ccm:              -                  141.3ms +/- 0.7%    140.5ms +/- 0.6%
    crypto-pbkdf2:           -                  572.7ms +/- 0.2%    572.4ms +/- 0.3%
    crypto-sha256-iterative: -                  104.6ms +/- 0.4%    104.5ms +/- 0.5%
Comment 3 WebKit Review Bot 2011-10-19 20:31:27 PDT
Comment on attachment 111703 [details]
the patch

Clearing flags on attachment: 111703

Committed r97928: <http://trac.webkit.org/changeset/97928>
Comment 4 WebKit Review Bot 2011-10-19 20:31:31 PDT
All reviewed patches have been landed.  Closing bug.