- 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
Created attachment 203345 [details] Optimize unordered floating point comparisons in LLINT and few bug fixes in baseline JIT for sh4
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 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.
LLINT part: https://bugs.webkit.org/show_bug.cgi?id=117049
Double floating point transfer fix in baseline JIT: https://bugs.webkit.org/show_bug.cgi?id=117054
Overflow case of branchMul32 in baseline JIT: https://bugs.webkit.org/show_bug.cgi?id=117057
branchTruncateDoubleToInt32 issue in baseline JIT: https://bugs.webkit.org/show_bug.cgi?id=117062
And the last one: Floating point comparisons in baseline JIT: https://bugs.webkit.org/show_bug.cgi?id=117066