Bug 117026 - [sh4] Optimize unordered floating point comparisons in LLINT and few bug fixes in baseline JIT
Summary: [sh4] Optimize unordered floating point comparisons in LLINT and few bug fixe...
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: 2013-05-30 05:14 PDT by Julien Brianceau
Modified: 2013-05-31 15:33 PDT (History)
4 users (show)

See Also:


Attachments
Optimize unordered floating point comparisons in LLINT and few bug fixes in baseline JIT for sh4 (18.98 KB, patch)
2013-05-30 05:29 PDT, Julien Brianceau
oliver: review-
oliver: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Julien Brianceau 2013-05-30 05:14:18 PDT
- Optimize unordered floating point comparisons in sh4 LLINT
- Fix floating point comparisons in sh4 baseline JIT
- Fix addDouble, sqrtDouble, branchTruncateDoubleToInt32 and Overflow case of branchMul32 in sh4 baseline JIT
Comment 1 Julien Brianceau 2013-05-30 05:29:11 PDT
Created attachment 203345 [details]
Optimize unordered floating point comparisons in LLINT and few bug fixes in baseline JIT for sh4
Comment 2 Julien Brianceau 2013-05-30 05:34:56 PDT
I've tested this patch on r150629 and I didn't see regressions when running
- Tools/Scripts/run-javascriptcore-tests
- Tools/Scripts/run-fast-jsc
- SunSpider 1.0

SunSpider 1.0 results for r150953 without patch:
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 13192.1ms +/- 1.6%
--------------------------------------------

  3d:                   2647.9ms +/- 0.8%
    cube:                821.4ms +/- 0.5%
    morph:               454.3ms +/- 0.4%
    raytrace:           1372.3ms +/- 1.7%

  access:               1967.3ms +/- 1.0%
    binary-trees:        121.9ms +/- 0.4%
    fannkuch:           1204.8ms +/- 1.5%
    nbody:               458.5ms +/- 0.4%
    nsieve:              182.1ms +/- 1.5%

  bitops:               1035.1ms +/- 0.4%
    3bit-bits-in-byte:    79.5ms +/- 0.6%
    bits-in-byte:        112.4ms +/- 1.4%
    bitwise-and:         202.1ms +/- 1.0%
    nsieve-bits:         641.1ms +/- 0.6%

  controlflow:            75.6ms +/- 2.9%
    recursive:            75.6ms +/- 2.9%

  crypto:               1165.4ms +/- 0.5%
    aes:                 693.6ms +/- 0.6%
    md5:                 295.0ms +/- 1.8%
    sha1:                176.8ms +/- 3.9%

  date:                 2115.0ms +/- 5.4%
    format-tofte:       1032.5ms +/- 9.7%
    format-xparb:       1082.5ms +/- 1.8%

  math:                  954.4ms +/- 6.0%
    cordic:              271.9ms +/- 0.4%
    partial-sums:        354.8ms +/- 2.2%
    spectral-norm:       327.8ms +/- 16.5%

  regexp:                533.0ms +/- 0.5%
    dna:                 533.0ms +/- 0.5%

  string:               2698.5ms +/- 1.6%
    base64:              224.8ms +/- 6.0%
    fasta:               467.1ms +/- 8.1%
    tagcloud:            568.6ms +/- 2.4%
    unpack-code:        1128.1ms +/- 1.0%
    validate-input:      309.9ms +/- 2.6%



SunSpider 1.0 results for r150953 with patch:
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total:                 12754.0ms +/- 1.0%
--------------------------------------------

  3d:                   2568.3ms +/- 1.6%
    cube:                809.8ms +/- 0.4%
    morph:               459.4ms +/- 2.6%
    raytrace:           1299.1ms +/- 3.2%

  access:               1971.4ms +/- 3.1%
    binary-trees:        115.1ms +/- 0.5%
    fannkuch:           1217.4ms +/- 5.0%
    nbody:               455.0ms +/- 0.6%
    nsieve:              183.9ms +/- 0.2%

  bitops:               1001.8ms +/- 0.9%
    3bit-bits-in-byte:    78.5ms +/- 1.1%
    bits-in-byte:        111.3ms +/- 0.3%
    bitwise-and:         202.0ms +/- 1.0%
    nsieve-bits:         610.0ms +/- 1.4%

  controlflow:            75.4ms +/- 0.6%
    recursive:            75.4ms +/- 0.6%

  crypto:               1117.5ms +/- 0.7%
    aes:                 648.8ms +/- 1.2%
    md5:                 304.9ms +/- 0.4%
    sha1:                163.9ms +/- 0.6%

  date:                 1993.4ms +/- 0.8%
    format-tofte:        929.1ms +/- 0.9%
    format-xparb:       1064.3ms +/- 1.1%

  math:                  885.3ms +/- 0.9%
    cordic:              256.4ms +/- 2.5%
    partial-sums:        367.9ms +/- 1.2%
    spectral-norm:       261.0ms +/- 1.4%

  regexp:                531.3ms +/- 0.1%
    dna:                 531.3ms +/- 0.1%

  string:               2609.9ms +/- 1.3%
    base64:              219.0ms +/- 4.6%
    fasta:               406.4ms +/- 3.5%
    tagcloud:            572.3ms +/- 1.4%
    unpack-code:        1103.0ms +/- 1.4%
    validate-input:      309.3ms +/- 2.7%
Comment 3 Oliver Hunt 2013-05-30 14:33:35 PDT
Comment on attachment 203345 [details]
Optimize unordered floating point comparisons in LLINT and few bug fixes in baseline JIT for sh4

Please separate out the jit bug fixes and the llint changes.
Comment 4 Julien Brianceau 2013-05-30 15:19:48 PDT
LLINT part: https://bugs.webkit.org/show_bug.cgi?id=117049
Comment 5 Julien Brianceau 2013-05-30 16:08:07 PDT
Double floating point transfer fix in baseline JIT: https://bugs.webkit.org/show_bug.cgi?id=117054
Comment 6 Julien Brianceau 2013-05-30 16:24:12 PDT
Overflow case of branchMul32 in baseline JIT: https://bugs.webkit.org/show_bug.cgi?id=117057
Comment 7 Julien Brianceau 2013-05-31 00:55:27 PDT
branchTruncateDoubleToInt32 issue in baseline JIT: https://bugs.webkit.org/show_bug.cgi?id=117062
Comment 8 Julien Brianceau 2013-05-31 02:34:16 PDT
And the last one:
Floating point comparisons in baseline JIT: https://bugs.webkit.org/show_bug.cgi?id=117066