WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
150411
Factor out the graph node worklists from DFG into WTF
https://bugs.webkit.org/show_bug.cgi?id=150411
Summary
Factor out the graph node worklists from DFG into WTF
Filip Pizlo
Reported
2015-10-21 13:24:27 PDT
They are generally useful graph algorithms.
Attachments
the patch
(29.14 KB, patch)
2015-10-21 13:28 PDT
,
Filip Pizlo
ggaren
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2015-10-21 13:28:28 PDT
Created
attachment 263724
[details]
the patch
Geoffrey Garen
Comment 2
2015-10-21 13:31:53 PDT
Comment on
attachment 263724
[details]
the patch r=me
Filip Pizlo
Comment 3
2015-10-21 18:45:20 PDT
Performance is OK: Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on bigmac (MacPro5,1). VMs tested: "TipOfTree" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (
r191393
) "GenericWorklists" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (
r191393
) Collected 7 samples per benchmark/VM, with 7 VM invocations per benchmark. Emitted a call to gc() between sample measurements. 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 GenericWorklists SunSpider: 3d-cube 8.0450+-0.1897 ? 8.0507+-0.2692 ? 3d-morph 7.9333+-0.1080 ? 8.0475+-0.1454 ? might be 1.0144x slower 3d-raytrace 8.9262+-0.1230 ? 8.9430+-0.1260 ? access-binary-trees 3.2608+-0.1369 ? 3.3052+-0.1594 ? might be 1.0136x slower access-fannkuch 8.9844+-0.1024 8.9564+-0.1478 access-nbody 4.3510+-0.0695 ? 4.4594+-0.1144 ? might be 1.0249x slower access-nsieve 4.6391+-0.1299 ? 4.6761+-0.0845 ? bitops-3bit-bits-in-byte 1.7710+-0.0867 1.7296+-0.0349 might be 1.0239x faster bitops-bits-in-byte 5.5178+-0.0736 ? 5.5371+-0.0611 ? bitops-bitwise-and 2.8841+-0.0982 2.8725+-0.1014 bitops-nsieve-bits 4.5081+-0.0859 ? 4.5723+-0.0561 ? might be 1.0142x slower controlflow-recursive 3.5727+-0.0775 ? 3.6543+-0.0880 ? might be 1.0228x slower crypto-aes 6.3045+-0.1336 ? 6.4715+-0.2193 ? might be 1.0265x slower crypto-md5 3.9965+-0.0969 ? 4.0812+-0.0461 ? might be 1.0212x slower crypto-sha1 3.5018+-0.0647 ? 3.5526+-0.0647 ? might be 1.0145x slower date-format-tofte 12.7460+-0.1951 ? 12.9031+-0.3239 ? might be 1.0123x slower date-format-xparb 7.3077+-0.2296 7.2304+-0.1379 might be 1.0107x faster math-cordic 4.4888+-0.0923 4.4420+-0.0861 might be 1.0105x faster math-partial-sums 9.8922+-0.1370 ? 9.9416+-0.0853 ? math-spectral-norm 3.1499+-0.0499 ? 3.1751+-0.0673 ? regexp-dna 9.9414+-0.2927 9.8294+-0.1702 might be 1.0114x faster string-base64 6.4867+-0.1896 6.4585+-0.2014 string-fasta 9.2944+-0.2229 9.1907+-0.2022 might be 1.0113x faster string-tagcloud 12.9019+-0.2356 12.8151+-0.1774 string-unpack-code 26.3481+-0.4676 26.1677+-0.1233 string-validate-input 6.9359+-0.0917 6.8730+-0.1807 <arithmetic> 7.2188+-0.0355 ? 7.2283+-0.0310 ? might be 1.0013x slower TipOfTree GenericWorklists LongSpider: 3d-cube 1155.6601+-8.5516 ? 1163.8699+-15.0329 ? 3d-morph 1863.9361+-0.9507 1863.9305+-0.5985 3d-raytrace 1005.8300+-7.4421 1004.5938+-5.9892 access-binary-trees 1344.2396+-3.0459 1340.8564+-5.3376 access-fannkuch 479.2048+-19.3874 477.1605+-19.8660 access-nbody 1012.0490+-0.8867 1011.6962+-0.4588 access-nsieve 683.8355+-2.0990 679.9116+-3.8079 bitops-3bit-bits-in-byte 45.4649+-0.1392 45.3461+-0.2695 bitops-bits-in-byte 330.2244+-2.6977 329.0985+-3.4267 bitops-nsieve-bits 619.0131+-2.0720 618.2724+-2.0391 controlflow-recursive 718.9256+-1.2415 ? 719.4626+-0.8728 ? crypto-aes 901.3771+-5.6849 901.1705+-6.9983 crypto-md5 803.6898+-4.7946 799.7443+-4.7302 crypto-sha1 1052.4622+-8.9492 1045.8446+-3.2099 date-format-tofte 1015.2259+-8.0389 ? 1019.3237+-11.7731 ? date-format-xparb 1046.4105+-51.5531 ? 1046.7062+-25.8152 ? hash-map 244.5816+-1.5645 244.1763+-1.8230 math-cordic 626.9113+-0.5584 ? 628.0275+-1.9578 ? math-partial-sums 1082.6723+-1.7242 ? 1083.2077+-2.3225 ? math-spectral-norm 1073.5779+-0.6697 1073.1822+-1.0887 string-base64 558.1914+-14.9184 553.6543+-6.0730 string-fasta 581.1021+-3.1637 ? 581.6072+-2.5445 ? string-tagcloud 288.5450+-1.6098 ? 291.0676+-7.4417 ? <geometric> 665.9694+-2.7508 665.4348+-1.6184 might be 1.0008x faster TipOfTree GenericWorklists V8Spider: crypto 74.7216+-0.7410 74.3231+-0.7209 deltablue 94.1597+-4.1004 ? 95.3026+-3.2067 ? might be 1.0121x slower earley-boyer 66.4316+-0.6366 ? 66.4683+-1.1508 ? raytrace 43.4229+-1.1035 42.9346+-1.2269 might be 1.0114x faster regexp 102.2779+-0.2411 102.1243+-0.6106 richards 77.2685+-0.7230 ? 77.7741+-0.9270 ? splay 53.7781+-0.7202 53.2035+-0.6027 might be 1.0108x faster <geometric> 70.4532+-0.7108 70.3539+-0.3435 might be 1.0014x faster TipOfTree GenericWorklists Octane: encrypt 0.25447+-0.00479 ? 0.25728+-0.00607 ? might be 1.0111x slower decrypt 4.79548+-0.00418 ? 4.79587+-0.00519 ? deltablue x2 0.22061+-0.00297 0.21991+-0.00127 earley 0.51287+-0.00197 0.51170+-0.00187 boyer 8.36781+-0.08987 8.30172+-0.07316 navier-stokes x2 6.32380+-0.00247 ? 6.33041+-0.00825 ? raytrace x2 1.49291+-0.00377 ! 1.50831+-0.00875 ! definitely 1.0103x slower richards x2 0.14926+-0.00050 ? 0.15035+-0.00189 ? splay x2 0.53333+-0.00321 0.53142+-0.00303 regexp x2 38.11281+-0.24134 37.95939+-0.07744 pdfjs x2 60.08905+-0.18959 ? 60.09668+-0.15924 ? mandreel x2 65.89819+-0.63586 65.56092+-0.54460 gbemu x2 57.28104+-2.47488 ? 58.49364+-4.60276 ? might be 1.0212x slower closure 0.92593+-0.00392 ? 0.92617+-0.00226 ? jquery 12.01974+-0.05085 ? 12.04493+-0.02820 ? box2d x2 16.56358+-0.24379 16.54328+-0.04019 zlib x2 579.71529+-1.70887 579.53743+-2.84852 typescript x2 1127.63637+-8.91823 ? 1131.04443+-4.98765 ? <geometric> 8.67375+-0.03411 ? 8.68823+-0.04164 ? might be 1.0017x slower TipOfTree GenericWorklists Kraken: ai-astar 213.264+-1.260 213.072+-1.202 audio-beat-detection 78.961+-0.429 ? 78.971+-0.220 ? audio-dft 129.248+-0.997 128.083+-1.102 audio-fft 58.537+-0.416 58.397+-0.266 audio-oscillator 93.691+-0.289 93.489+-0.380 imaging-darkroom 94.518+-0.159 ? 94.770+-0.159 ? imaging-desaturate 89.546+-0.148 ? 89.703+-0.618 ? imaging-gaussian-blur 153.834+-1.175 ? 156.854+-7.898 ? might be 1.0196x slower json-parse-financial 68.195+-0.555 68.021+-0.198 json-stringify-tinderbox 41.008+-0.738 40.855+-0.177 stanford-crypto-aes 63.008+-0.322 ? 63.169+-0.539 ? stanford-crypto-ccm 60.035+-1.510 ? 60.697+-1.138 ? might be 1.0110x slower stanford-crypto-pbkdf2 147.131+-0.798 146.311+-0.676 stanford-crypto-sha256-iterative 58.363+-0.477 57.740+-0.170 might be 1.0108x faster <arithmetic> 96.381+-0.180 ? 96.438+-0.614 ? might be 1.0006x slower TipOfTree GenericWorklists JSRegress: abc-forward-loop-equal 57.2529+-0.1791 57.2066+-0.2058 abc-postfix-backward-loop 56.5731+-0.1912 56.2877+-0.3968 abc-simple-backward-loop 56.4027+-0.1993 56.1158+-0.2897 abc-simple-forward-loop 56.2754+-0.4234 ? 56.2918+-0.2083 ? abc-skippy-loop 38.8399+-0.1613 ? 38.9109+-0.1004 ? abs-boolean 3.8238+-0.0587 3.7971+-0.0553 adapt-to-double-divide 18.2852+-0.4368 18.1784+-0.2146 aliased-arguments-getbyval 1.6562+-0.1390 ? 1.6762+-0.1216 ? might be 1.0121x slower allocate-big-object 3.8201+-0.2155 3.7775+-0.1917 might be 1.0113x faster arguments-named-and-reflective 16.0508+-0.2069 15.6296+-0.3556 might be 1.0269x faster arguments-out-of-bounds 15.6425+-0.1946 ? 15.7563+-0.2157 ? arguments-strict-mode 13.9859+-0.3993 ? 13.9902+-0.1945 ? arguments 12.6297+-0.1045 ? 12.6526+-0.1630 ? arity-mismatch-inlining 1.3216+-0.0737 1.2435+-0.0363 might be 1.0628x faster array-access-polymorphic-structure 11.0757+-0.1543 ? 11.1364+-0.0797 ? array-nonarray-polymorhpic-access 40.4914+-0.8122 ? 40.6033+-0.9482 ? array-prototype-every 123.3767+-1.1287 ? 125.4301+-2.1562 ? might be 1.0166x slower array-prototype-forEach 120.2466+-0.5855 ? 122.1533+-2.5821 ? might be 1.0159x slower array-prototype-map 135.8372+-1.7269 ? 136.1270+-2.2699 ? array-prototype-reduce 114.1013+-1.6594 ? 115.0646+-2.1337 ? array-prototype-reduceRight 114.9946+-2.1508 ? 115.1226+-1.0870 ? array-prototype-some 124.8209+-2.2136 123.6822+-1.8165 array-splice-contiguous 36.4754+-0.2589 ? 36.7859+-0.2609 ? array-with-double-add 5.8048+-0.0505 ? 5.8539+-0.0657 ? array-with-double-increment 4.4800+-0.0532 ? 4.5485+-0.0804 ? might be 1.0153x slower array-with-double-mul-add 7.4905+-0.0618 ? 7.5144+-0.1070 ? array-with-double-sum 4.4378+-0.0841 4.4070+-0.0484 array-with-int32-add-sub 10.5215+-0.0912 10.5008+-0.1291 array-with-int32-or-double-sum 4.6005+-0.0629 4.5482+-0.0671 might be 1.0115x faster ArrayBuffer-DataView-alloc-large-long-lived 47.3147+-1.1667 ? 47.7456+-0.8396 ? ArrayBuffer-DataView-alloc-long-lived 19.5360+-0.6100 ? 19.9990+-1.8373 ? might be 1.0237x slower ArrayBuffer-Int32Array-byteOffset 5.4534+-0.1430 ? 5.4909+-0.0694 ? ArrayBuffer-Int8Array-alloc-large-long-lived 46.2877+-0.4899 ? 46.5961+-0.8171 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 30.1038+-0.2082 ? 30.3300+-0.5815 ? ArrayBuffer-Int8Array-alloc-long-lived 17.5511+-0.1481 17.3660+-0.1657 might be 1.0107x faster ArrayBuffer-Int8Array-alloc 14.3062+-0.1392 14.2574+-0.1734 arrowfunction-call 15.5047+-0.1614 ? 15.6060+-0.1720 ? asmjs_bool_bug 10.0251+-0.0787 ? 10.1386+-0.0410 ? might be 1.0113x slower assign-custom-setter-polymorphic 4.2888+-0.0686 ? 4.3255+-0.1114 ? assign-custom-setter 5.8952+-0.2577 ? 5.9067+-0.1752 ? basic-set 11.4240+-0.1791 ? 11.7043+-0.3442 ? might be 1.0245x slower big-int-mul 5.9426+-0.1141 5.8761+-0.0843 might be 1.0113x faster boolean-test 4.5440+-0.0841 ? 4.5733+-0.0627 ? branch-fold 4.8586+-0.0490 4.8259+-0.0575 branch-on-string-as-boolean 26.0485+-0.3252 25.7268+-0.4061 might be 1.0125x faster by-val-generic 3.7490+-0.0993 ? 3.7844+-0.1073 ? call-spread-apply 41.0086+-0.5553 ? 41.3356+-0.6347 ? call-spread-call 31.7451+-0.1917 ? 32.1305+-0.3954 ? might be 1.0121x slower captured-assignments 0.7765+-0.0638 ? 0.7835+-0.0569 ? cast-int-to-double 8.6316+-0.1314 ? 8.6730+-0.0758 ? cell-argument 8.4973+-0.2886 ? 8.7734+-0.1084 ? might be 1.0325x slower cfg-simplify 3.9102+-0.0750 3.8430+-0.1023 might be 1.0175x faster chain-getter-access 11.8966+-0.2412 11.7097+-0.3108 might be 1.0160x faster cmpeq-obj-to-obj-other 15.3016+-0.3092 14.9859+-0.1285 might be 1.0211x faster constant-test 8.0721+-0.1440 8.0473+-0.1516 create-lots-of-functions 16.3488+-0.2860 ? 16.4703+-0.2963 ? cse-new-array-buffer 3.4015+-0.1061 3.3722+-0.1186 cse-new-array 3.4547+-0.0551 3.4504+-0.1459 custom-setter-getter-as-put-get-by-id 0.8903+-0.0666 0.8710+-0.0649 might be 1.0221x faster DataView-custom-properties 53.7612+-0.6149 ? 54.3515+-0.7625 ? might be 1.0110x slower delay-tear-off-arguments-strictmode 19.4616+-0.1349 ? 19.4889+-0.1540 ? deltablue-varargs 277.8173+-2.4187 ? 279.1944+-2.4429 ? destructuring-arguments 242.9729+-0.7531 ? 243.3605+-1.5052 ? destructuring-parameters-overridden-by-function 0.7805+-0.0840 0.7766+-0.0830 destructuring-swap 7.8784+-0.0954 7.8445+-0.0813 direct-arguments-getbyval 1.6943+-0.1383 ? 1.7171+-0.1182 ? might be 1.0135x slower div-boolean-double 5.5969+-0.0537 ? 5.6048+-0.0693 ? div-boolean 9.8734+-0.1436 ? 9.9751+-0.1160 ? might be 1.0103x slower double-get-by-val-out-of-bounds 6.8902+-0.1693 ? 6.9930+-0.0967 ? might be 1.0149x slower double-pollution-getbyval 9.8431+-0.1284 9.8411+-0.1360 double-pollution-putbyoffset 5.7104+-0.2738 5.4974+-0.0743 might be 1.0387x faster double-real-use 40.4751+-0.1608 40.4249+-0.2036 double-to-int32-typed-array-no-inline 3.2691+-0.0700 3.2122+-0.0593 might be 1.0177x faster double-to-int32-typed-array 2.9212+-0.0715 2.9015+-0.0651 double-to-uint32-typed-array-no-inline 3.3250+-0.0864 3.2694+-0.0868 might be 1.0170x faster double-to-uint32-typed-array 3.0140+-0.1076 2.9802+-0.0644 might be 1.0114x faster elidable-new-object-dag 54.9653+-0.8056 54.1196+-0.7625 might be 1.0156x faster elidable-new-object-roflcopter 54.8549+-1.3626 ? 55.6869+-0.4555 ? might be 1.0152x slower elidable-new-object-then-call 56.0517+-1.8219 ? 56.8683+-1.2621 ? might be 1.0146x slower elidable-new-object-tree 66.3336+-1.2436 66.0351+-1.3025 empty-string-plus-int 7.6153+-0.0952 ? 7.6923+-0.1207 ? might be 1.0101x slower emscripten-cube2hash 47.7596+-1.6076 47.1208+-0.3939 might be 1.0136x faster exit-length-on-plain-object 22.6911+-0.3124 22.5022+-0.1342 external-arguments-getbyval 1.8286+-0.0812 1.7997+-0.1554 might be 1.0161x faster external-arguments-putbyval 3.4638+-0.1288 ? 3.5508+-0.1421 ? might be 1.0251x slower fixed-typed-array-storage-var-index 1.7196+-0.0810 ? 1.7891+-0.0760 ? might be 1.0404x slower fixed-typed-array-storage 1.4436+-0.0143 ? 1.4562+-0.0663 ? Float32Array-matrix-mult 6.8230+-0.1286 6.7920+-0.1870 Float32Array-to-Float64Array-set 79.9035+-0.5867 ? 80.1122+-0.6561 ? Float64Array-alloc-long-lived 95.6242+-0.4751 95.4479+-0.5150 Float64Array-to-Int16Array-set 90.0803+-0.3727 89.9157+-0.4759 fold-double-to-int 19.2173+-0.1608 ? 19.3090+-0.0830 ? fold-get-by-id-to-multi-get-by-offset-rare-int 12.1568+-0.0783 ? 12.2869+-0.1449 ? might be 1.0107x slower fold-get-by-id-to-multi-get-by-offset 10.3157+-0.1718 10.2094+-0.0739 might be 1.0104x faster fold-multi-get-by-offset-to-get-by-offset 9.1040+-0.5265 ? 9.3095+-0.2546 ? might be 1.0226x slower fold-multi-get-by-offset-to-poly-get-by-offset 9.6220+-0.3918 ? 9.6341+-0.3980 ? fold-multi-put-by-offset-to-poly-put-by-offset 11.4004+-0.0850 ? 11.4766+-0.0417 ? fold-multi-put-by-offset-to-put-by-offset 10.8296+-0.0547 10.7015+-0.2185 might be 1.0120x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 15.7133+-0.7195 ? 16.0562+-0.6171 ? might be 1.0218x slower fold-put-by-id-to-multi-put-by-offset 12.8485+-0.6437 12.4842+-0.4249 might be 1.0292x faster fold-put-by-val-with-string-to-multi-put-by-offset 12.5331+-0.3958 ? 12.7153+-0.6089 ? might be 1.0145x slower fold-put-by-val-with-symbol-to-multi-put-by-offset 12.9504+-0.5275 12.5410+-0.4815 might be 1.0326x faster fold-put-structure 8.6841+-0.1566 8.6790+-0.1212 for-of-iterate-array-entries 16.4910+-0.0629 16.4349+-0.0976 for-of-iterate-array-keys 5.2878+-0.2399 5.2846+-0.2342 for-of-iterate-array-values 5.0901+-0.1287 ? 5.1720+-0.1892 ? might be 1.0161x slower fround 21.8780+-0.2779 ? 22.1552+-0.4909 ? might be 1.0127x slower ftl-library-inlining-dataview 99.1686+-3.1142 ? 101.0362+-2.5894 ? might be 1.0188x slower ftl-library-inlining 105.5294+-17.7445 ? 126.4540+-15.9031 ? might be 1.1983x slower function-call 15.0564+-0.1828 ? 15.1268+-0.2193 ? function-dot-apply 3.1314+-0.0648 ? 3.2025+-0.0708 ? might be 1.0227x slower function-test 4.4651+-0.0940 4.4497+-0.0636 function-with-eval 126.4769+-0.5661 ? 126.4811+-0.3676 ? gcse-poly-get-less-obvious 33.3212+-0.5705 ? 33.4000+-0.6227 ? gcse-poly-get 34.5037+-0.0680 34.3259+-0.2972 gcse 6.7882+-0.0589 ? 6.7891+-0.1057 ? get-by-id-bimorphic-check-structure-elimination-simple 3.2612+-0.0707 ? 3.2916+-0.0824 ? get-by-id-bimorphic-check-structure-elimination 8.1537+-0.1248 ? 8.1948+-0.0895 ? get-by-id-chain-from-try-block 3.4573+-0.1042 ? 3.5037+-0.1088 ? might be 1.0134x slower get-by-id-check-structure-elimination 7.6890+-0.0746 7.6791+-0.1016 get-by-id-proto-or-self 25.2915+-2.1214 24.4609+-1.9262 might be 1.0340x faster get-by-id-quadmorphic-check-structure-elimination-simple 4.0549+-0.0682 ? 4.1020+-0.0544 ? might be 1.0116x slower get-by-id-self-or-proto 24.6881+-1.8873 23.8703+-0.8546 might be 1.0343x faster get-by-val-out-of-bounds 6.8771+-0.1562 ? 7.0069+-0.2094 ? might be 1.0189x slower get-by-val-with-string-bimorphic-check-structure-elimination-simple 3.9494+-0.0535 ? 3.9696+-0.0764 ? get-by-val-with-string-bimorphic-check-structure-elimination 10.7667+-0.1472 10.7656+-0.1311 get-by-val-with-string-chain-from-try-block 3.5520+-0.1005 ? 3.5593+-0.0793 ? get-by-val-with-string-check-structure-elimination 9.5354+-0.1441 ? 9.5956+-0.1162 ? get-by-val-with-string-proto-or-self 25.4818+-2.0041 24.0124+-0.2301 might be 1.0612x faster get-by-val-with-string-quadmorphic-check-structure-elimination-simple 5.0750+-0.1028 5.0547+-0.0943 get-by-val-with-string-self-or-proto 24.6597+-1.3915 ? 25.1587+-1.7259 ? might be 1.0202x slower get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 4.6584+-0.0925 ? 4.6696+-0.0500 ? get-by-val-with-symbol-bimorphic-check-structure-elimination 19.2783+-0.3051 19.1176+-0.2110 get-by-val-with-symbol-chain-from-try-block 3.5652+-0.0814 ? 3.6620+-0.1115 ? might be 1.0272x slower get-by-val-with-symbol-check-structure-elimination 18.4820+-0.2821 18.3664+-0.2447 get-by-val-with-symbol-proto-or-self 25.3190+-1.5477 24.8064+-1.2587 might be 1.0207x faster get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 6.1434+-0.0846 6.0638+-0.0778 might be 1.0131x faster get-by-val-with-symbol-self-or-proto 25.3576+-1.6107 25.2823+-1.6594 get_callee_monomorphic 3.7027+-0.0811 3.6964+-0.1521 get_callee_polymorphic 4.8742+-0.1061 ? 4.8898+-0.1819 ? getter-no-activation 5.8955+-0.0491 ? 5.9141+-0.0819 ? getter-prototype 12.8700+-0.2843 12.7211+-0.1990 might be 1.0117x faster getter-richards-try-catch 1751.3234+-52.6971 ? 1760.2136+-56.3097 ? getter-richards 139.1341+-2.0740 138.8544+-1.6459 getter 7.3849+-0.0417 7.3694+-0.0527 global-object-access-with-mutating-structure 8.1904+-0.1611 8.1664+-0.1793 global-var-const-infer-fire-from-opt 1.1932+-0.0971 1.1857+-0.1029 global-var-const-infer 1.0808+-0.1259 1.0185+-0.0995 might be 1.0612x faster hard-overflow-check-equal 46.2803+-0.2071 46.1007+-0.3085 hard-overflow-check 46.1043+-0.6795 45.7723+-0.1571 HashMap-put-get-iterate-keys 35.6764+-0.2276 ? 35.8870+-0.3314 ? HashMap-put-get-iterate 36.3406+-1.1369 35.5342+-0.3561 might be 1.0227x faster HashMap-string-put-get-iterate 35.9408+-0.6708 ? 36.1544+-0.7315 ? hoist-make-rope 15.6207+-1.0232 15.0496+-0.9140 might be 1.0379x faster hoist-poly-check-structure-effectful-loop 6.7202+-0.0809 6.7167+-0.0805 hoist-poly-check-structure 4.5197+-0.0624 ? 4.5497+-0.1257 ? imul-double-only 10.4066+-0.1895 ? 10.4191+-0.1183 ? imul-int-only 12.3346+-0.5790 ? 12.3675+-0.5547 ? imul-mixed 10.0946+-0.2815 ? 10.5204+-0.4865 ? might be 1.0422x slower in-four-cases 28.6258+-0.7408 28.3526+-0.2099 in-one-case-false 16.4298+-0.1766 16.3777+-0.1135 in-one-case-true 16.3405+-0.1193 ? 16.3605+-0.1015 ? in-two-cases 17.0786+-0.1088 16.9062+-0.0963 might be 1.0102x faster indexed-properties-in-objects 4.0326+-0.0675 ? 4.0770+-0.0666 ? might be 1.0110x slower infer-closure-const-then-mov-no-inline 5.3901+-0.0604 ? 5.4566+-0.0830 ? might be 1.0123x slower infer-closure-const-then-mov 23.1853+-0.2249 ? 23.1955+-0.2792 ? infer-closure-const-then-put-to-scope-no-inline 17.3305+-0.1590 ? 17.3709+-0.1511 ? infer-closure-const-then-put-to-scope 32.2706+-0.2491 ? 32.5427+-0.6009 ? infer-closure-const-then-reenter-no-inline 74.4884+-0.2290 74.3628+-0.2076 infer-closure-const-then-reenter 32.1460+-1.3838 ? 32.7888+-0.2215 ? might be 1.0200x slower infer-constant-global-property 4.8814+-0.0804 4.8524+-0.0922 infer-constant-property 3.3479+-0.0729 ? 3.3958+-0.1121 ? might be 1.0143x slower infer-one-time-closure-ten-vars 12.7628+-0.1290 12.4994+-0.2146 might be 1.0211x faster infer-one-time-closure-two-vars 12.0444+-0.3368 11.9735+-0.2477 infer-one-time-closure 12.0589+-0.2109 11.9847+-0.2708 infer-one-time-deep-closure 18.8457+-0.3279 ? 18.8908+-0.1779 ? inline-arguments-access 6.0030+-0.1787 ? 6.0383+-0.1118 ? inline-arguments-aliased-access 6.1132+-0.0917 ? 6.1276+-0.1047 ? inline-arguments-local-escape 6.1004+-0.1540 ? 6.1413+-0.0696 ? inline-get-scoped-var 5.7393+-0.0595 ? 5.7548+-0.0523 ? inlined-put-by-id-transition 15.4907+-0.2769 ? 15.6458+-0.1530 ? might be 1.0100x slower inlined-put-by-val-with-string-transition 67.3207+-1.7473 66.7160+-1.0521 inlined-put-by-val-with-symbol-transition 66.8237+-0.5818 66.7135+-0.5438 int-or-other-abs-then-get-by-val 6.6390+-0.0835 ? 6.6907+-0.0426 ? int-or-other-abs-zero-then-get-by-val 27.8441+-0.1901 ? 27.8918+-0.2701 ? int-or-other-add-then-get-by-val 6.4935+-0.0667 ? 6.5334+-0.0525 ? int-or-other-add 8.2465+-0.0775 8.2308+-0.0953 int-or-other-div-then-get-by-val 5.1862+-0.0709 5.1110+-0.0272 might be 1.0147x faster int-or-other-max-then-get-by-val 5.1530+-0.1023 ? 5.1941+-0.0626 ? int-or-other-min-then-get-by-val 5.2823+-0.0612 5.1921+-0.1066 might be 1.0174x faster int-or-other-mod-then-get-by-val 4.9391+-0.0874 ? 5.0173+-0.0430 ? might be 1.0158x slower int-or-other-mul-then-get-by-val 5.3040+-0.0499 5.2490+-0.0732 might be 1.0105x faster int-or-other-neg-then-get-by-val 5.8437+-0.0702 ? 5.8911+-0.0950 ? int-or-other-neg-zero-then-get-by-val 28.0933+-0.1476 ? 28.1040+-0.2057 ? int-or-other-sub-then-get-by-val 6.4779+-0.0866 ? 6.5037+-0.1023 ? int-or-other-sub 5.3200+-0.0607 ? 5.3299+-0.1032 ? int-overflow-local 6.0839+-0.0580 ? 6.1372+-0.0551 ? Int16Array-alloc-long-lived 66.9566+-0.6377 66.3027+-0.3732 Int16Array-bubble-sort-with-byteLength 40.6077+-0.2442 40.5888+-0.1391 Int16Array-bubble-sort 39.2030+-0.2769 ? 39.2427+-0.0664 ? Int16Array-load-int-mul 2.1957+-0.0565 2.1904+-0.0747 Int16Array-to-Int32Array-set 69.6260+-0.5511 69.3682+-0.4729 Int32Array-alloc-large 32.3111+-0.6185 ? 32.6027+-0.6070 ? Int32Array-alloc-long-lived 75.4177+-0.4941 ? 75.6831+-0.6250 ? Int32Array-alloc 4.6218+-0.1233 ? 4.6637+-0.0768 ? Int32Array-Int8Array-view-alloc 9.7103+-0.2334 9.6928+-0.1426 int52-spill 7.2452+-0.1052 7.1093+-0.1092 might be 1.0191x faster Int8Array-alloc-long-lived 59.2963+-0.5380 59.1951+-0.5252 Int8Array-load-with-byteLength 4.8382+-0.1102 ? 4.8750+-0.0353 ? Int8Array-load 4.7988+-0.0872 4.7705+-0.0727 integer-divide 13.9802+-0.0833 13.9747+-0.0653 integer-modulo 2.7777+-0.0804 2.7648+-0.0920 is-boolean-fold-tricky 5.7202+-0.0571 5.6963+-0.0390 is-boolean-fold 4.0531+-0.0637 ? 4.1113+-0.0818 ? might be 1.0143x slower is-function-fold-tricky-internal-function 14.8918+-0.4077 14.7024+-0.1351 might be 1.0129x faster is-function-fold-tricky 5.8737+-0.0535 5.8206+-0.0662 is-function-fold 4.1953+-0.0349 ^ 4.0754+-0.0662 ^ definitely 1.0294x faster is-number-fold-tricky 5.7553+-0.0889 ? 5.8076+-0.0789 ? is-number-fold 4.0508+-0.0720 4.0413+-0.0539 is-object-or-null-fold-functions 4.1592+-0.0698 ? 4.2168+-0.1137 ? might be 1.0138x slower is-object-or-null-fold-less-tricky 5.7724+-0.0572 ? 5.7752+-0.0720 ? is-object-or-null-fold-tricky 7.4119+-0.0804 ? 7.4667+-0.1339 ? is-object-or-null-fold 4.1047+-0.1043 4.0689+-0.0630 is-object-or-null-trickier-function 5.9051+-0.0774 5.8900+-0.0914 is-object-or-null-trickier-internal-function 15.7208+-0.7839 15.3537+-0.1759 might be 1.0239x faster is-object-or-null-tricky-function 5.8222+-0.0639 ? 5.8304+-0.0731 ? is-object-or-null-tricky-internal-function 11.6070+-0.3471 11.5319+-0.3601 is-string-fold-tricky 5.6822+-0.0613 5.6699+-0.0546 is-string-fold 4.0736+-0.0746 4.0534+-0.0722 is-undefined-fold-tricky 4.8302+-0.0812 ? 4.8364+-0.0974 ? is-undefined-fold 4.0791+-0.0934 ? 4.1078+-0.0795 ? JSONP-negative-0 0.4452+-0.0429 ? 0.4697+-0.0417 ? might be 1.0551x slower large-int-captured 6.8582+-0.1316 ? 6.9565+-0.0681 ? might be 1.0143x slower large-int-neg 21.0918+-0.2915 ? 21.1885+-0.2824 ? large-int 18.6550+-0.1965 18.4751+-0.2471 load-varargs-elimination 30.5209+-0.3707 ? 30.9009+-0.7898 ? might be 1.0125x slower logical-not-weird-types 5.2087+-0.1590 5.1315+-0.1011 might be 1.0150x faster logical-not 6.6961+-0.0754 6.6883+-0.1059 lots-of-fields 17.2129+-0.1318 17.1650+-0.0503 make-indexed-storage 4.4449+-0.2404 4.3801+-0.2747 might be 1.0148x faster make-rope-cse 6.3325+-0.1018 ? 6.3431+-0.0799 ? marsaglia-larger-ints 53.2137+-0.5910 ? 53.8279+-0.4117 ? might be 1.0115x slower marsaglia-osr-entry 28.3415+-0.3218 28.1782+-0.3031 math-with-out-of-bounds-array-values 41.3537+-0.5158 ? 41.7181+-0.9260 ? max-boolean 3.3614+-0.0848 ? 3.3926+-0.0835 ? method-on-number 23.8027+-0.6586 23.4462+-0.2784 might be 1.0152x faster min-boolean 3.4866+-0.2402 3.4490+-0.0742 might be 1.0109x faster minus-boolean-double 4.2746+-0.0563 ? 4.3228+-0.0780 ? might be 1.0113x slower minus-boolean 3.3836+-0.0623 ? 3.4148+-0.0635 ? misc-strict-eq 48.9081+-1.7741 ? 50.9057+-0.5705 ? might be 1.0408x slower mod-boolean-double 11.8782+-0.1114 11.8572+-0.0886 mod-boolean 9.0938+-0.0698 9.0111+-0.1899 mul-boolean-double 4.9479+-0.0725 4.9421+-0.0487 mul-boolean 3.5773+-0.0652 3.5450+-0.0432 neg-boolean 4.3290+-0.0383 ? 4.3480+-0.1277 ? negative-zero-divide 0.6415+-0.0628 0.5750+-0.0516 might be 1.1156x faster negative-zero-modulo 0.6069+-0.0484 0.5710+-0.0455 might be 1.0629x faster negative-zero-negate 0.5544+-0.0746 ? 0.5785+-0.0529 ? might be 1.0434x slower nested-function-parsing 73.1676+-0.4054 ? 73.2620+-0.4694 ? new-array-buffer-dead 143.9983+-0.8122 143.5743+-1.5965 new-array-buffer-push 9.9095+-0.0875 9.9095+-0.2101 new-array-dead 24.3753+-1.6163 ? 25.4379+-1.4107 ? might be 1.0436x slower new-array-push 5.8251+-0.3112 5.7933+-0.2556 no-inline-constructor 50.2793+-0.3213 50.1066+-0.2710 number-test 4.5194+-0.0536 4.5119+-0.0432 object-closure-call 7.6655+-0.0962 7.6045+-0.1073 object-get-own-property-symbols-on-large-array 5.3523+-0.2100 ? 5.3782+-0.3580 ? object-test 4.3743+-0.0698 ? 4.3822+-0.1011 ? obvious-sink-pathology-taken 166.9330+-1.4749 166.9204+-1.2518 obvious-sink-pathology 53.5663+-0.8350 52.7315+-0.7230 might be 1.0158x faster obviously-elidable-new-object 50.5619+-0.5859 50.4368+-0.9530 plus-boolean-arith 3.4803+-0.0707 3.4203+-0.0810 might be 1.0176x faster plus-boolean-double 4.3329+-0.0798 4.3090+-0.0452 plus-boolean 3.2890+-0.0914 ? 3.2982+-0.0947 ? poly-chain-access-different-prototypes-simple 3.9755+-0.0847 3.9633+-0.0435 poly-chain-access-different-prototypes 3.4424+-0.0802 ? 3.4809+-0.1373 ? might be 1.0112x slower poly-chain-access-simpler 3.9381+-0.1087 3.9223+-0.0638 poly-chain-access 3.3915+-0.0975 ? 3.4160+-0.0953 ? poly-stricteq 82.5961+-0.1498 ? 82.6910+-0.2465 ? polymorphic-array-call 1.9804+-0.1146 1.9713+-0.1390 polymorphic-get-by-id 4.2053+-0.0891 ? 4.3826+-0.2105 ? might be 1.0422x slower polymorphic-put-by-id 54.6272+-2.0068 ? 56.3930+-1.4845 ? might be 1.0323x slower polymorphic-put-by-val-with-string 45.7613+-4.4778 44.1024+-0.5379 might be 1.0376x faster polymorphic-put-by-val-with-symbol 44.2247+-0.6407 ? 44.3390+-0.8987 ? polymorphic-structure 25.2349+-0.0890 25.1796+-0.1422 polyvariant-monomorphic-get-by-id 11.5950+-0.1302 11.5583+-0.0682 proto-getter-access 11.6204+-0.3353 ? 11.6360+-0.1956 ? prototype-access-with-mutating-prototype 7.9417+-0.1242 7.8915+-0.0850 put-by-id-replace-and-transition 12.6883+-0.2543 ? 12.8797+-0.1502 ? might be 1.0151x slower put-by-id-slightly-polymorphic 3.6762+-0.0860 ? 3.7328+-0.0552 ? might be 1.0154x slower put-by-id 18.1106+-0.3624 ? 18.4309+-0.1710 ? might be 1.0177x slower put-by-val-direct 0.5697+-0.0394 ? 0.6424+-0.0636 ? might be 1.1276x slower put-by-val-large-index-blank-indexing-type 8.4584+-0.1175 ? 8.4785+-0.1195 ? put-by-val-machine-int 3.8350+-0.0756 3.8218+-0.1235 put-by-val-with-string-replace-and-transition 19.1742+-0.2572 18.8432+-0.2290 might be 1.0176x faster put-by-val-with-string-slightly-polymorphic 4.8283+-0.1175 ? 4.8927+-0.0775 ? might be 1.0133x slower put-by-val-with-string 19.2790+-0.4216 ? 19.3557+-0.2362 ? put-by-val-with-symbol-replace-and-transition 21.0057+-0.3236 20.7767+-0.1911 might be 1.0110x faster put-by-val-with-symbol-slightly-polymorphic 5.1085+-0.0841 5.0423+-0.0624 might be 1.0131x faster put-by-val-with-symbol 18.9741+-0.2725 ? 19.2188+-0.3977 ? might be 1.0129x slower rare-osr-exit-on-local 17.3137+-0.4197 ? 17.4639+-0.0730 ? raytrace-with-empty-try-catch 9.1977+-0.2818 8.9629+-0.3427 might be 1.0262x faster raytrace-with-try-catch 15.9074+-0.2818 15.8892+-0.1988 register-pressure-from-osr 25.1003+-0.2091 ? 25.3040+-0.0786 ? repeat-multi-get-by-offset 29.3581+-0.2903 ? 29.4869+-0.1873 ? richards-empty-try-catch 119.6795+-2.0566 ? 121.5035+-2.5079 ? might be 1.0152x slower richards-try-catch 398.8606+-2.3233 ? 400.7347+-4.6996 ? setter-prototype 13.3307+-0.4867 13.1070+-0.3034 might be 1.0171x faster setter 7.3994+-0.0525 7.3274+-0.0742 simple-activation-demo 34.9090+-0.1706 34.9060+-0.1841 simple-getter-access 15.5056+-0.2802 ? 15.8985+-0.4627 ? might be 1.0253x slower simple-poly-call-nested 11.0404+-0.3192 ? 11.2891+-0.3146 ? might be 1.0225x slower simple-poly-call 1.8642+-0.0572 ? 1.8874+-0.0665 ? might be 1.0125x slower sin-boolean 26.6543+-0.3474 ? 27.0491+-0.2406 ? might be 1.0148x slower singleton-scope 87.3914+-0.0692 87.3133+-0.1465 sink-function 14.7156+-1.1774 ? 15.0594+-1.3403 ? might be 1.0234x slower sink-huge-activation 22.4687+-0.3885 22.2039+-0.2452 might be 1.0119x faster sinkable-new-object-dag 89.2825+-1.9141 88.6441+-2.3133 sinkable-new-object-taken 67.6826+-1.4493 67.6559+-1.3028 sinkable-new-object 52.7913+-0.5993 ? 52.9699+-0.9832 ? slow-array-profile-convergence 4.0536+-0.1763 ? 4.0848+-0.1616 ? slow-convergence 3.9239+-0.1097 ? 3.9517+-0.0810 ? slow-ternaries 32.4793+-0.3228 ? 32.5429+-0.1899 ? sorting-benchmark 25.9421+-0.3165 25.9021+-0.4036 sparse-conditional 1.8113+-0.0507 1.7979+-0.1092 splice-to-remove 19.3196+-0.1568 ? 19.5781+-0.2529 ? might be 1.0134x slower string-char-code-at 20.6963+-0.1775 20.6468+-0.1623 string-concat-object 3.2375+-0.0618 ? 3.2637+-0.1203 ? string-concat-pair-object 3.1822+-0.0665 3.1648+-0.0611 string-concat-pair-simple 16.9983+-0.1789 ? 17.1003+-0.1999 ? string-concat-simple 17.4954+-0.2571 17.4024+-0.2546 string-cons-repeat 11.3903+-0.0365 ? 11.4167+-0.0748 ? string-cons-tower 10.8377+-0.0853 ? 10.8492+-0.0668 ? string-equality 24.7481+-0.1043 24.6689+-0.2440 string-get-by-val-big-char 10.6123+-0.4392 10.6019+-0.4690 string-get-by-val-out-of-bounds-insane 5.3167+-0.1147 5.3144+-0.1403 string-get-by-val-out-of-bounds 6.7434+-0.1116 6.6991+-0.0746 string-get-by-val 4.8369+-0.0440 ? 4.8722+-0.0361 ? string-hash 2.8547+-0.0714 ? 2.8844+-0.0695 ? might be 1.0104x slower string-long-ident-equality 20.1291+-0.1669 ? 20.2073+-0.1362 ? string-out-of-bounds 16.4204+-0.1464 16.3953+-0.2226 string-repeat-arith 43.0889+-0.3410 ? 43.2401+-0.3835 ? string-sub 57.0259+-1.6278 56.7346+-1.0198 string-test 4.5931+-0.0501 4.5021+-0.0791 might be 1.0202x faster string-var-equality 59.7314+-1.3092 ? 60.7015+-1.5011 ? might be 1.0162x slower structure-hoist-over-transitions 3.4789+-0.0998 3.4731+-0.1098 substring-concat-weird 56.9949+-0.2749 ? 57.2543+-0.1944 ? substring-concat 62.5310+-0.3514 ? 62.8480+-0.3078 ? substring 69.6360+-0.1544 ? 70.4950+-0.9070 ? might be 1.0123x slower switch-char-constant 3.4672+-0.0397 ? 3.5096+-0.0528 ? might be 1.0122x slower switch-char 8.1979+-0.0630 8.1801+-0.0762 switch-constant 11.6392+-0.2661 11.4007+-0.2533 might be 1.0209x faster switch-string-basic-big-var 32.6360+-0.1734 32.3052+-0.2656 might be 1.0102x faster switch-string-basic-big 29.0562+-0.5474 28.0467+-1.1293 might be 1.0360x faster switch-string-basic-var 32.8414+-0.1941 32.5997+-0.2490 switch-string-basic 21.9007+-0.8075 21.8489+-0.6463 switch-string-big-length-tower-var 28.4353+-0.2881 ? 28.5186+-0.3358 ? switch-string-length-tower-var 21.5228+-0.1001 ? 21.5902+-0.1817 ? switch-string-length-tower 15.5613+-0.1559 ? 15.6363+-0.2080 ? switch-string-short 15.4298+-0.1426 ? 15.5543+-0.0898 ? switch 17.2907+-1.0281 ? 17.7548+-1.0326 ? might be 1.0268x slower tear-off-arguments-simple 4.5514+-0.1526 4.5029+-0.0764 might be 1.0108x faster tear-off-arguments 6.4979+-0.1653 ? 6.6431+-0.3423 ? might be 1.0224x slower temporal-structure 16.6166+-0.0892 ? 16.6806+-0.1156 ? to-int32-boolean 21.1055+-0.1339 21.0088+-0.2118 try-catch-get-by-val-cloned-arguments 14.6412+-0.2108 ? 14.6935+-0.1571 ? try-catch-get-by-val-direct-arguments 3.0686+-0.1657 2.9653+-0.1201 might be 1.0348x faster try-catch-get-by-val-scoped-arguments 6.7649+-0.0725 6.7467+-0.1094 typed-array-get-set-by-val-profiling 38.3472+-0.9561 ? 40.0820+-2.2171 ? might be 1.0452x slower undefined-property-access 439.0367+-1.5002 ? 439.8026+-1.4546 ? undefined-test 4.6564+-0.0524 ? 4.6703+-0.0773 ? unprofiled-licm 16.4599+-0.2576 ? 16.6633+-0.2021 ? might be 1.0124x slower v8-raytrace-with-empty-try-catch 46.9037+-0.4590 ? 48.0060+-0.9527 ? might be 1.0235x slower v8-raytrace-with-try-catch 106.7578+-0.8865 ? 106.7657+-1.2545 ? varargs-call 18.8128+-0.4345 18.6660+-0.3093 varargs-construct-inline 36.8742+-0.1860 ? 36.9501+-0.3509 ? varargs-construct 29.7749+-0.1722 29.6518+-0.2524 varargs-inline 13.0803+-0.1309 12.9395+-0.2279 might be 1.0109x faster varargs-strict-mode 15.0273+-0.1365 14.9999+-0.1041 varargs 14.7953+-0.2092 14.7607+-0.2272 weird-inlining-const-prop 3.1908+-0.1051 3.1670+-0.0355 <geometric> 12.2664+-0.0142 ? 12.2786+-0.0221 ? might be 1.0010x slower TipOfTree GenericWorklists AsmBench: bigfib.cpp 683.5334+-9.7256 681.6018+-10.2384 cray.c 624.2872+-2.5149 623.0776+-1.5575 dry.c 657.4501+-0.6846 ? 657.6554+-0.5280 ? FloatMM.c 914.9680+-0.5428 ? 915.1158+-0.7271 ? gcc-loops.cpp 5880.2138+-20.5164 ? 5880.6633+-19.9790 ? n-body.c 1680.2953+-2.1174 1679.7355+-1.1112 Quicksort.c 570.2659+-6.4270 568.1601+-6.4621 stepanov_container.cpp 4833.8294+-21.3924 ? 4838.3918+-24.8045 ? Towers.c 425.7756+-0.7485 425.5538+-0.8176 <geometric> 1128.8307+-1.1341 1127.8504+-2.7188 might be 1.0009x faster TipOfTree GenericWorklists CompressionBench: huffman 81.1210+-0.6061 ? 81.7928+-0.5135 ? arithmetic-simple 442.1411+-1.8785 ? 443.3913+-0.9648 ? arithmetic-precise 367.7755+-2.3200 ? 369.6377+-1.5423 ? arithmetic-complex-precise 369.9783+-3.8380 ? 370.2219+-2.8552 ? arithmetic-precise-order-0 456.3726+-0.7984 455.0498+-2.6114 arithmetic-precise-order-1 423.6693+-1.2184 423.2876+-2.6275 arithmetic-precise-order-2 494.4846+-4.3073 493.4485+-3.2185 arithmetic-simple-order-1 502.2907+-1.5623 ? 507.6640+-6.8615 ? might be 1.0107x slower arithmetic-simple-order-2 567.3240+-2.7059 ? 568.1195+-2.9303 ? lz-string 424.6541+-5.2064 423.9112+-5.5660 <geometric> 375.9831+-1.0086 ? 376.7779+-1.1414 ? might be 1.0021x slower TipOfTree GenericWorklists Geomean of preferred means: <scaled-result> 78.7160+-0.1175 ? 78.7516+-0.1384 ? might be 1.0005x slower
Filip Pizlo
Comment 4
2015-10-21 18:52:27 PDT
Landed in
http://trac.webkit.org/changeset/191424
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug