RESOLVED FIXED 154432
[JSC] Improve the instruction selection of Select
https://bugs.webkit.org/show_bug.cgi?id=154432
Summary [JSC] Improve the instruction selection of Select
Benjamin Poulain
Reported 2016-02-18 19:09:49 PST
[JSC] Improve the instruction selection of Select
Attachments
Patch (27.53 KB, patch)
2016-02-18 19:15 PST, Benjamin Poulain
no flags
Perf results (60.81 KB, text/plain)
2016-02-18 20:31 PST, Benjamin Poulain
no flags
Benjamin Poulain
Comment 1 2016-02-18 19:15:54 PST
Benjamin Poulain
Comment 2 2016-02-18 20:31:11 PST
Created attachment 271726 [details] Perf results Conf#1 Conf#2 SunSpider: 3d-cube 4.4360+-0.0598 ? 4.4409+-0.0707 ? 3d-morph 4.9461+-0.0227 ? 4.9517+-0.0285 ? 3d-raytrace 5.2599+-0.0638 5.2098+-0.0644 access-binary-trees 2.0591+-0.1544 2.0234+-0.0406 might be 1.0176x faster access-fannkuch 5.5180+-0.0530 ? 5.5263+-0.0434 ? access-nbody 2.4361+-0.0318 ? 2.4401+-0.0644 ? access-nsieve 3.0039+-0.0743 ? 3.0251+-0.0616 ? bitops-3bit-bits-in-byte 1.0510+-0.0069 ? 1.0595+-0.0174 ? bitops-bits-in-byte 2.9168+-0.0251 ? 2.9655+-0.0515 ? might be 1.0167x slower bitops-bitwise-and 1.8761+-0.0222 1.8583+-0.0136 bitops-nsieve-bits 2.7428+-0.0156 ? 2.7647+-0.0347 ? controlflow-recursive 2.2858+-0.0785 2.2851+-0.0713 crypto-aes 3.7519+-0.0599 3.7477+-0.0519 crypto-md5 2.3706+-0.0222 ? 2.4250+-0.0491 ? might be 1.0230x slower crypto-sha1 2.1907+-0.0378 ? 2.2275+-0.0506 ? might be 1.0168x slower date-format-tofte 6.2339+-0.0666 6.2041+-0.0490 date-format-xparb 4.2885+-0.0419 4.2699+-0.0390 math-cordic 2.7525+-0.0247 2.7250+-0.0148 might be 1.0101x faster math-partial-sums 4.5327+-0.0533 4.5322+-0.0718 math-spectral-norm 1.8576+-0.0316 1.8376+-0.0135 might be 1.0109x faster regexp-dna 5.8638+-0.0987 5.7455+-0.0684 might be 1.0206x faster string-base64 4.1319+-0.0630 4.0576+-0.0239 might be 1.0183x faster string-fasta 5.4857+-0.0444 ? 5.5048+-0.0517 ? string-tagcloud 7.6129+-0.0565 7.6030+-0.0618 string-unpack-code 16.9188+-0.1978 ? 17.0437+-0.2619 ? string-validate-input 4.0032+-0.0470 ? 4.0413+-0.0704 ? <arithmetic> 4.2510+-0.0139 4.2506+-0.0106 might be 1.0001x faster Conf#1 Conf#2 LongSpider: 3d-cube 774.0715+-3.2086 ? 775.9935+-6.7534 ? 3d-morph 566.6292+-0.2764 ? 566.9985+-0.8838 ? 3d-raytrace 596.9485+-5.2473 596.8118+-2.9748 access-binary-trees 896.2965+-3.2881 ? 902.1610+-6.2041 ? access-fannkuch 272.8734+-18.7757 246.0767+-11.8582 might be 1.1089x faster access-nbody 490.8175+-0.1177 ^ 490.2510+-0.0777 ^ definitely 1.0012x faster access-nsieve 470.9667+-1.0195 470.0502+-1.3722 bitops-3bit-bits-in-byte 31.7074+-0.0433 ? 31.7152+-0.0354 ? bitops-bits-in-byte 102.6728+-1.1882 101.8636+-1.0776 bitops-nsieve-bits 353.4107+-1.3973 353.4024+-1.3272 controlflow-recursive 434.6621+-1.4076 434.1856+-1.2467 crypto-aes 634.8440+-2.0643 ^ 628.6308+-3.8252 ^ definitely 1.0099x faster crypto-md5 557.5948+-3.7062 ? 558.9581+-3.8661 ? crypto-sha1 712.1460+-3.0141 ^ 703.7393+-2.9897 ^ definitely 1.0119x faster date-format-tofte 550.8316+-10.7138 545.4917+-7.2942 date-format-xparb 623.8839+-0.9601 621.2838+-2.2836 hash-map 150.6665+-0.3960 149.3396+-0.9850 math-cordic 453.4004+-4.8147 ? 455.5772+-5.4404 ? math-partial-sums 389.2124+-0.2610 ? 389.3830+-0.2271 ? math-spectral-norm 525.8647+-0.6303 525.6532+-0.2174 string-base64 370.2980+-2.9554 368.0991+-2.2718 string-fasta 337.5433+-2.4426 336.7912+-1.3929 string-tagcloud 167.7561+-0.6529 ? 168.6504+-2.2468 ? <geometric> 377.6109+-1.1789 ^ 375.2610+-0.8312 ^ definitely 1.0063x faster Conf#1 Conf#2 V8Spider: crypto 35.9086+-0.1684 ? 35.9649+-0.1311 ? deltablue 49.2300+-1.2962 48.5656+-0.6914 might be 1.0137x faster earley-boyer 38.8014+-0.3058 ? 38.9645+-0.1667 ? raytrace 19.7893+-0.1552 ? 19.9266+-0.1779 ? regexp 59.6268+-0.8314 59.4792+-0.8893 richards 39.0741+-0.5151 38.9582+-0.2243 splay 33.0862+-0.2236 32.9627+-0.2944 <geometric> 37.5130+-0.1827 37.4614+-0.1366 might be 1.0014x faster Conf#1 Conf#2 Octane: encrypt 0.14719+-0.00190 ? 0.14740+-0.00220 ? decrypt 2.63921+-0.00825 ? 2.64235+-0.00681 ? deltablue x2 0.13297+-0.00437 0.12942+-0.00082 might be 1.0274x faster earley 0.30162+-0.00333 0.30085+-0.00402 boyer 4.52145+-0.01952 4.50427+-0.01648 navier-stokes x2 4.66993+-0.00763 4.66398+-0.00520 raytrace x2 0.91453+-0.00375 ? 0.91556+-0.00297 ? richards x2 0.07753+-0.00101 0.07711+-0.00077 splay x2 0.39091+-0.00406 ? 0.39124+-0.00569 ? regexp x2 24.36154+-0.35409 ? 24.61188+-0.13974 ? might be 1.0103x slower pdfjs x2 37.43861+-0.15995 37.31097+-0.17971 mandreel x2 41.37513+-0.21663 ? 41.38920+-0.23316 ? gbemu x2 22.83475+-0.13783 22.72895+-0.11825 closure 0.53174+-0.00112 ? 0.53303+-0.00105 ? jquery 6.81585+-0.00895 ? 6.82967+-0.02008 ? box2d x2 8.63443+-0.05289 8.58582+-0.04081 zlib x2 379.53512+-8.35004 ? 381.70142+-4.05096 ? typescript x2 629.43975+-2.94287 ? 629.77180+-4.98118 ? <geometric> 5.11006+-0.00911 5.10084+-0.01150 might be 1.0018x faster Conf#1 Conf#2 Kraken: ai-astar 89.459+-1.686 ? 89.660+-1.674 ? audio-beat-detection 45.172+-0.126 44.883+-0.634 audio-dft 87.786+-0.342 87.601+-0.439 audio-fft 33.717+-0.050 33.711+-0.051 audio-oscillator 45.788+-0.325 45.575+-0.036 imaging-darkroom 57.020+-0.098 ? 57.127+-0.288 ? imaging-desaturate 41.793+-0.064 41.788+-0.060 imaging-gaussian-blur 69.421+-1.257 ? 71.246+-3.001 ? might be 1.0263x slower json-parse-financial 34.705+-0.134 ? 34.709+-0.436 ? json-stringify-tinderbox 22.901+-0.291 22.763+-0.214 stanford-crypto-aes 38.268+-0.205 ^ 37.748+-0.231 ^ definitely 1.0138x faster stanford-crypto-ccm 34.222+-0.883 ? 34.860+-0.544 ? might be 1.0186x slower stanford-crypto-pbkdf2 95.589+-0.458 ? 95.620+-0.799 ? stanford-crypto-sha256-iterative 36.073+-0.160 ? 36.297+-0.102 ? <arithmetic> 52.279+-0.176 ? 52.399+-0.155 ? might be 1.0023x slower Conf#1 Conf#2 AsmBench: bigfib.cpp 421.4597+-4.5370 ? 421.8978+-4.4250 ? cray.c 346.7326+-1.4174 ? 347.0421+-0.8846 ? dry.c 435.1491+-39.6964 426.0164+-34.4609 might be 1.0214x faster FloatMM.c 671.6600+-5.5836 671.3678+-5.3007 gcc-loops.cpp 3424.5765+-16.6313 ? 3438.5442+-21.3603 ? n-body.c 766.0584+-1.1130 765.8909+-1.4105 Quicksort.c 379.0844+-2.8810 ? 380.2275+-2.0264 ? stepanov_container.cpp 3030.1382+-13.9361 3028.4640+-9.6985 Towers.c 253.9166+-0.3235 ? 254.1400+-0.8915 ? <geometric> 683.3120+-7.2058 682.4397+-5.1792 might be 1.0013x faster Conf#1 Conf#2 CompressionBench: huffman 30.1706+-0.0871 ? 30.1844+-0.1276 ? arithmetic-simple 247.4444+-0.5567 ! 249.0122+-0.7402 ! definitely 1.0063x slower arithmetic-precise 234.8145+-2.6280 232.1072+-1.4971 might be 1.0117x faster arithmetic-complex-precise 233.8417+-1.6906 233.2636+-2.5171 arithmetic-precise-order-0 251.8121+-0.4208 ? 251.8281+-0.4805 ? arithmetic-precise-order-1 285.3417+-1.3316 283.8477+-0.6765 arithmetic-precise-order-2 327.8634+-5.0638 325.5007+-0.9080 arithmetic-simple-order-1 296.6160+-1.7371 ? 297.1154+-1.3573 ? arithmetic-simple-order-2 339.5233+-3.7741 339.2135+-2.3171 lz-string 307.5160+-5.2210 305.2663+-3.3243 <geometric> 222.6113+-0.6794 222.0361+-0.5694 might be 1.0026x faster Conf#1 Conf#2 Geomean of preferred means: <scaled-result> 45.6662+-0.0558 45.6027+-0.0520 might be 1.0014x faster
Benjamin Poulain
Comment 3 2016-02-18 20:32:55 PST
Looks like a ~2% win on deltablue.
WebKit Commit Bot
Comment 4 2016-02-18 22:42:05 PST
Comment on attachment 271722 [details] Patch Clearing flags on attachment: 271722 Committed r196799: <http://trac.webkit.org/changeset/196799>
WebKit Commit Bot
Comment 5 2016-02-18 22:42:10 PST
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.