RESOLVED FIXED 65424
DFG non-speculative JIT does not optimize PutByVal
https://bugs.webkit.org/show_bug.cgi?id=65424
Summary DFG non-speculative JIT does not optimize PutByVal
Filip Pizlo
Reported 2011-07-30 19:39:24 PDT
The DFG non-speculative JIT does not inline the fast path for PutByVal. It should probably inline it since it's important for programs that use arrays.
Attachments
the patch (4.51 KB, patch)
2011-07-30 19:42 PDT, Filip Pizlo
no flags
Filip Pizlo
Comment 1 2011-07-30 19:42:05 PDT
Created attachment 102450 [details] the patch This is a win on V8 and Kraken, and is neutral on SunSpider. I'll mark as ? when all of the tests pass. [pizlo@minime bencher] ./bencher TipOfTree:/Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc PutByVal:/Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc --outer 8 --inner 4 --warmup 1 --sunspider TipOfTree: /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc PutByVal: /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc 416/416 TipOfTree PutByVal 3d-cube 7.9960+-0.1025 7.9514+-0.1193 3d-morph 7.4389+-0.0984 ? 7.4717+-0.0818 ? 3d-raytrace 8.0496+-0.0791 ? 8.0799+-0.1073 ? access-binary-trees 2.5966+-0.0429 2.5497+-0.0396 might be 1.0184x faster access-fannkuch 11.4419+-0.0778 11.4402+-0.0949 access-nbody 4.2838+-0.0506 4.2521+-0.0375 access-nsieve 2.4487+-0.0240 ? 2.4793+-0.0265 ? might be 1.0125x slower bitops-3bit-bits-in-byte 1.7775+-0.0383 1.7407+-0.0285 might be 1.0211x faster bitops-bits-in-byte 4.3679+-0.1230 ? 4.3684+-0.1120 ? bitops-bitwise-and 3.6403+-0.0455 3.6222+-0.0496 bitops-nsieve-bits 5.4653+-0.0520 ? 5.5231+-0.0623 ? might be 1.0106x slower controlflow-recursive 2.6069+-0.0362 2.5787+-0.0252 might be 1.0110x faster crypto-aes 7.1403+-0.1086 6.9869+-0.0837 might be 1.0220x faster crypto-md5 2.7782+-0.0432 2.7611+-0.0396 crypto-sha1 2.1873+-0.0306 ? 2.2137+-0.0384 ? might be 1.0120x slower date-format-tofte 13.8207+-0.1268 13.8169+-0.1653 date-format-xparb 9.1638+-0.1102 ! 9.4332+-0.1297 ! definitely 1.0294x slower math-cordic 6.2502+-0.1015 ? 6.2869+-0.0803 ? math-partial-sums 7.5674+-0.0630 ? 7.6288+-0.0988 ? math-spectral-norm 2.4707+-0.0259 ? 2.5098+-0.0317 ? might be 1.0158x slower regexp-dna 10.1646+-0.0885 ! 10.3734+-0.1145 ! definitely 1.0205x slower string-base64 6.5853+-0.0767 6.5288+-0.0879 string-fasta 7.8724+-0.0925 7.8144+-0.1147 string-tagcloud 13.7407+-0.1333 13.6155+-0.1485 string-unpack-code 21.0170+-0.1659 ? 21.3776+-0.2100 ? might be 1.0172x slower string-validate-input 7.6710+-0.1038 7.5806+-0.1044 might be 1.0119x faster AVERAGE 6.9440+-0.0121 ? 6.9610+-0.0187 ? GEOMEAN 5.6967+-0.0118 ? 5.6981+-0.0175 ? [pizlo@minime bencher] ./bencher TipOfTree:/Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc PutByVal:/Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc --outer 8 --inner 4 --warmup 1 --v8 TipOfTree: /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc PutByVal: /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc 112/112 TipOfTree PutByVal crypto 97.3797+-0.2758 ^ 92.0391+-0.2533 ^ definitely 1.0580x faster deltablue 268.9680+-1.2141 ? 269.2985+-1.4905 ? earley-boyer 124.8596+-1.0107 124.0673+-0.5397 raytrace 79.9386+-0.5049 ^ 78.5594+-0.5066 ^ definitely 1.0176x faster regexp 106.6690+-0.4577 ? 107.5821+-0.4963 ? richards 253.9950+-1.0977 253.4202+-1.2990 splay 183.8398+-1.0727 183.0630+-0.5311 AVERAGE 159.3785+-0.3636 ^ 158.2900+-0.3325 ^ definitely 1.0069x faster GEOMEAN 144.2779+-0.3709 ^ 142.7031+-0.2669 ^ definitely 1.0110x faster [pizlo@minime bencher] ./bencher TipOfTree:/Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc PutByVal:/Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc --outer 8 --inner 4 --warmup 1 --kraken TipOfTree: /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc PutByVal: /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc 224/224 TipOfTree PutByVal ai-astar 1093.1172+-4.5503 ^ 1080.1295+-2.7251 ^ definitely 1.0120x faster audio-beat-detection 452.1903+-1.4868 ! 460.8981+-2.3712 ! definitely 1.0193x slower audio-dft 445.4518+-4.0142 ? 447.8315+-5.3821 ? audio-fft 359.2328+-0.7923 ! 361.9505+-1.6893 ! definitely 1.0076x slower audio-oscillator 441.3523+-1.0646 ^ 400.6011+-1.6775 ^ definitely 1.1017x faster imaging-darkroom 658.6015+-3.5162 ^ 568.0929+-1.0142 ^ definitely 1.1593x faster imaging-desaturate 855.1886+-4.7568 ^ 590.2016+-1.4386 ^ definitely 1.4490x faster imaging-gaussian-blur 3074.3151+-73.2557 ^ 2961.6057+-9.7733 ^ definitely 1.0381x faster json-parse-financial 48.4931+-0.2036 ^ 47.8002+-0.1907 ^ definitely 1.0145x faster json-stringify-tinderbox 63.1767+-0.3018 ^ 62.2697+-0.1606 ^ definitely 1.0146x faster stanford-crypto-aes 144.8389+-0.8967 143.3318+-0.6163 might be 1.0105x faster stanford-crypto-ccm 114.9960+-0.8006 ? 115.4686+-1.0867 ? stanford-crypto-pbkdf2 387.3435+-13.6259 ^ 366.1053+-1.8585 ^ definitely 1.0580x faster stanford-crypto-sha256-iterative 141.4128+-0.6867 ^ 139.2711+-0.6301 ^ definitely 1.0154x faster AVERAGE 591.4079+-5.3777 ^ 553.2541+-0.8777 ^ definitely 1.0690x faster GEOMEAN 328.1413+-0.9137 ^ 311.3703+-0.4795 ^ definitely 1.0539x faster [pizlo@minime bencher]
Filip Pizlo
Comment 2 2011-07-30 19:56:09 PDT
Comment on attachment 102450 [details] the patch Tests pass, ready for review.
WebKit Review Bot
Comment 3 2011-07-31 13:13:51 PDT
Comment on attachment 102450 [details] the patch Clearing flags on attachment: 102450 Committed r92085: <http://trac.webkit.org/changeset/92085>
WebKit Review Bot
Comment 4 2011-07-31 13:13:55 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.