RESOLVED FIXED 69782
DFG JSVALUE64 spill/fill code should not box integers and doubles
https://bugs.webkit.org/show_bug.cgi?id=69782
Summary DFG JSVALUE64 spill/fill code should not box integers and doubles
Filip Pizlo
Reported 2011-10-10 13:54:35 PDT
Patch forthcoming.
Attachments
the patch (21.71 KB, patch)
2011-10-10 14:14 PDT, Filip Pizlo
no flags
the patch (22.21 KB, patch)
2011-10-10 15:15 PDT, Filip Pizlo
oliver: review+
Filip Pizlo
Comment 1 2011-10-10 14:14:30 PDT
Created attachment 110403 [details] the patch Slight speed-up. Benchmark report for SunSpider, V8, and Kraken. VMs tested: "TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc "LessBoxing" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc Collected 60 samples per benchmark/VM, with 20 VM invocations per benchmark. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree LessBoxing SunSpider: 3d-cube 7.2739+-0.0657 ? 7.3075+-0.0697 ? 3d-morph 7.4757+-0.0544 ! 7.7074+-0.0955 ! definitely 1.0310x slower 3d-raytrace 7.4721+-0.0686 7.3894+-0.0769 might be 1.0112x faster access-binary-trees 1.7216+-0.0261 ? 1.7246+-0.0247 ? access-fannkuch 6.3454+-0.0520 ? 6.3688+-0.0442 ? access-nbody 3.4795+-0.0347 ^ 3.3183+-0.0330 ^ definitely 1.0486x faster access-nsieve 2.5647+-0.0319 ? 2.5800+-0.0279 ? bitops-3bit-bits-in-byte 1.7392+-0.0274 1.7390+-0.0149 bitops-bits-in-byte 2.7640+-0.0345 2.7462+-0.0280 bitops-bitwise-and 3.3015+-0.0464 ? 3.3296+-0.0412 ? bitops-nsieve-bits 5.4197+-0.0474 5.4170+-0.0506 controlflow-recursive 2.0556+-0.0201 ? 2.0809+-0.0162 ? might be 1.0123x slower crypto-aes 6.6586+-0.0740 6.5857+-0.0735 might be 1.0111x faster crypto-md5 2.8172+-0.0343 2.7567+-0.0303 might be 1.0219x faster crypto-sha1 2.4703+-0.0316 ? 2.4833+-0.0288 ? date-format-tofte 10.1067+-0.0994 10.0543+-0.1002 date-format-xparb 9.5907+-0.1864 ^ 9.1953+-0.0958 ^ definitely 1.0430x faster math-cordic 6.3579+-0.0477 ? 6.3929+-0.0468 ? math-partial-sums 7.5736+-0.0520 7.5168+-0.0542 math-spectral-norm 2.8186+-0.0290 ? 2.8347+-0.0307 ? regexp-dna 10.6892+-0.0767 10.6194+-0.0516 string-base64 5.1842+-0.0529 ? 5.2541+-0.0597 ? might be 1.0135x slower string-fasta 6.3671+-0.0567 ? 6.3885+-0.0457 ? string-tagcloud 11.0805+-0.1035 ? 11.1701+-0.0959 ? string-unpack-code 20.1535+-0.1703 ? 20.2916+-0.1425 ? string-validate-input 6.3769+-0.0697 6.3233+-0.0749 <arithmetic> * 6.1484+-0.0141 6.1375+-0.0108 <geometric> 5.0664+-0.0129 5.0568+-0.0098 <harmonic> 4.1667+-0.0175 4.1619+-0.0121 TipOfTree LessBoxing V8: crypto 72.0284+-0.1599 ? 72.0857+-0.2500 ? deltablue 225.0126+-0.7738 ? 225.8579+-0.9640 ? earley-boyer 90.3212+-0.1424 ! 90.9863+-0.1762 ! definitely 1.0074x slower raytrace 58.2994+-0.1702 58.1696+-0.1722 regexp 104.0321+-0.1473 ^ 103.2559+-0.1733 ^ definitely 1.0075x faster richards 206.0128+-0.4354 205.8134+-0.5239 splay 94.6477+-0.3675 ? 94.9802+-0.2992 ? <arithmetic> 121.4792+-0.1492 ? 121.5927+-0.1876 ? <geometric> * 108.1507+-0.1170 ? 108.2223+-0.1366 ? <harmonic> 97.7793+-0.1159 ? 97.8191+-0.1266 ? TipOfTree LessBoxing Kraken: ai-astar 496.6051+-1.8897 496.3196+-1.6396 audio-beat-detection 191.7711+-0.3888 ^ 189.2745+-0.3614 ^ definitely 1.0132x faster audio-dft 267.0710+-1.1490 266.8231+-1.7366 audio-fft 125.0587+-0.2357 ^ 123.5293+-0.4490 ^ definitely 1.0124x faster audio-oscillator 253.1486+-0.8283 ^ 251.0860+-0.7502 ^ definitely 1.0082x faster imaging-darkroom 413.1779+-0.8445 ! 414.9194+-0.8582 ! definitely 1.0042x slower imaging-desaturate 231.2899+-1.0118 230.5569+-0.4188 imaging-gaussian-blur 580.9515+-0.8881 ^ 577.4326+-0.9453 ^ definitely 1.0061x faster json-parse-financial 54.5454+-0.1643 54.2829+-0.1455 json-stringify-tinderbox 67.6192+-0.3464 ! 68.2558+-0.1267 ! definitely 1.0094x slower stanford-crypto-aes 130.6782+-0.6582 ? 130.8398+-0.7034 ? stanford-crypto-ccm 100.8848+-0.2843 ! 101.4564+-0.2398 ! definitely 1.0057x slower stanford-crypto-pbkdf2 192.1694+-0.4210 ^ 189.3855+-0.5868 ^ definitely 1.0147x faster stanford-crypto-sha256-iterative 71.0562+-0.1780 70.8363+-0.1519 <arithmetic> * 226.8591+-0.2401 ^ 226.0713+-0.2433 ^ definitely 1.0035x faster <geometric> 177.0123+-0.1984 ^ 176.4272+-0.1804 ^ definitely 1.0033x faster <harmonic> 138.1171+-0.1798 137.8161+-0.1446 TipOfTree LessBoxing All benchmarks: <arithmetic> 89.0689+-0.0804 ^ 88.8452+-0.0843 ^ definitely 1.0025x faster <geometric> 23.0348+-0.0365 22.9904+-0.0289 <harmonic> 7.3289+-0.0301 7.3205+-0.0208 TipOfTree LessBoxing Geomean of preferred means: <scaled-result> 53.2325+-0.0482 53.1514+-0.0470
Oliver Hunt
Comment 2 2011-10-10 14:19:11 PDT
Comment on attachment 110403 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=110403&action=review Does 32_64 still just end up boxing? > Source/JavaScriptCore/ChangeLog:7 > + Need moar changelog
Filip Pizlo
Comment 3 2011-10-10 14:21:32 PDT
(In reply to comment #2) > (From update of attachment 110403 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=110403&action=review > > Does 32_64 still just end up boxing? It ends up .... doing things. The reason why I didn't touch that code is that Xian is hacking it. Apparently it's still got wrongness. I figure we want to get it to be correct first and then add the corner cases later. > > > Source/JavaScriptCore/ChangeLog:7 > > + > > Need moar changelog Ack.
Filip Pizlo
Comment 4 2011-10-10 15:15:46 PDT
Created attachment 110414 [details] the patch more stuff in changelog
Filip Pizlo
Comment 5 2011-10-10 18:13:46 PDT
Landed in r97118.
Note You need to log in before you can comment on or make changes to this bug.