RESOLVED FIXED 144819
CPS rethreading phase's flush detector flushes way too many SetLocals
https://bugs.webkit.org/show_bug.cgi?id=144819
Summary CPS rethreading phase's flush detector flushes way too many SetLocals
Filip Pizlo
Reported 2015-05-08 16:10:42 PDT
Patch forthcoming.
Attachments
the patch (16.51 KB, patch)
2015-05-08 16:14 PDT, Filip Pizlo
no flags
the patch (2.13 KB, patch)
2015-05-08 17:17 PDT, Filip Pizlo
ggaren: review+
Filip Pizlo
Comment 1 2015-05-08 16:14:32 PDT
Created attachment 252755 [details] the patch
Geoffrey Garen
Comment 2 2015-05-08 16:32:19 PDT
Wrong patch uploaded?
Filip Pizlo
Comment 3 2015-05-08 17:17:52 PDT
Created attachment 252756 [details] the patch
Filip Pizlo
Comment 4 2015-05-08 18:25:20 PDT
Looks good. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on dethklok (MacBookPro9,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r184016) "FixFlushes" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r184016) Collected 6 samples per benchmark/VM, with 6 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 FixFlushes SunSpider: 3d-cube 5.1432+-0.0721 ? 5.1813+-0.1167 ? 3d-morph 6.0961+-0.6812 5.8268+-0.1103 might be 1.0462x faster 3d-raytrace 6.4887+-0.1497 ? 6.6388+-0.3285 ? might be 1.0231x slower access-binary-trees 2.5127+-0.2827 2.2552+-0.0563 might be 1.1142x faster access-fannkuch 6.0061+-0.0341 5.9042+-0.0816 might be 1.0173x faster access-nbody 2.8679+-0.1138 ? 3.0859+-0.2885 ? might be 1.0760x slower access-nsieve 3.3720+-0.1188 ? 3.5387+-0.2496 ? might be 1.0494x slower bitops-3bit-bits-in-byte 1.6923+-0.1472 1.5982+-0.1034 might be 1.0589x faster bitops-bits-in-byte 3.6606+-0.3893 3.4925+-0.1119 might be 1.0481x faster bitops-bitwise-and 2.1672+-0.1332 2.1564+-0.0679 bitops-nsieve-bits 3.3112+-0.4834 ? 3.4184+-0.0640 ? might be 1.0324x slower controlflow-recursive 2.3703+-0.1966 2.3160+-0.1101 might be 1.0235x faster crypto-aes 4.6631+-0.5730 4.6501+-0.5166 crypto-md5 2.7759+-0.1861 2.7456+-0.0718 might be 1.0110x faster crypto-sha1 2.6520+-0.1744 ? 2.7279+-0.2334 ? might be 1.0286x slower date-format-tofte 9.2809+-0.0759 ! 9.6058+-0.2037 ! definitely 1.0350x slower date-format-xparb 5.8387+-0.2095 ? 5.9245+-0.2115 ? might be 1.0147x slower math-cordic 3.2082+-0.1582 3.0305+-0.0280 might be 1.0586x faster math-partial-sums 5.2374+-0.1065 ? 5.3870+-0.4113 ? might be 1.0286x slower math-spectral-norm 2.0905+-0.3209 2.0326+-0.2347 might be 1.0285x faster regexp-dna 7.7395+-1.2917 7.7263+-1.4049 string-base64 5.2346+-0.7415 4.7719+-0.1705 might be 1.0970x faster string-fasta 6.9225+-0.6465 ? 8.9651+-4.3801 ? might be 1.2951x slower string-tagcloud 10.7174+-1.4258 ? 10.7904+-0.8746 ? string-unpack-code 20.6933+-0.7142 ? 20.7049+-0.8652 ? string-validate-input 4.8760+-0.1973 4.8727+-0.0578 <arithmetic> 5.2930+-0.0861 ? 5.3595+-0.1513 ? might be 1.0126x slower TipOfTree FixFlushes LongSpider: 3d-cube 879.4962+-5.2359 ? 883.0091+-4.3321 ? 3d-morph 1527.7843+-3.1745 ? 1533.3771+-8.6825 ? 3d-raytrace 730.3289+-7.2099 ? 739.1031+-7.0623 ? might be 1.0120x slower access-binary-trees 1033.0166+-10.0800 ? 1034.1320+-8.7937 ? access-fannkuch 345.3583+-12.5574 330.9044+-8.3718 might be 1.0437x faster access-nbody 611.4082+-2.9952 611.2999+-2.4024 access-nsieve 482.3617+-6.6051 481.4530+-8.4515 bitops-3bit-bits-in-byte 46.1834+-2.2068 45.7896+-2.8997 bitops-bits-in-byte 103.0643+-4.6817 102.0791+-4.8965 bitops-nsieve-bits 423.0868+-6.2983 419.9257+-2.7451 controlflow-recursive 479.1220+-1.4183 ! 485.4867+-4.3215 ! definitely 1.0133x slower crypto-aes 709.0476+-4.4375 708.1630+-9.5602 crypto-md5 523.8534+-8.9203 523.7098+-8.4983 crypto-sha1 595.7392+-3.5021 ! 606.8940+-6.7954 ! definitely 1.0187x slower date-format-tofte 761.9591+-25.3923 759.6101+-13.0750 date-format-xparb 797.3017+-20.3194 789.6322+-19.4011 hash-map 172.1993+-4.8031 171.5229+-4.1828 math-cordic 587.8677+-2.6860 ? 589.4816+-3.6672 ? math-partial-sums 502.7038+-1.5459 ? 505.7614+-5.4695 ? math-spectral-norm 564.8314+-1.8672 ? 568.3796+-7.2280 ? string-base64 378.2978+-3.5487 377.4036+-5.0523 string-fasta 435.8924+-4.3994 434.3793+-5.5001 string-tagcloud 196.6157+-2.6394 ? 197.6587+-3.2287 ? <geometric> 453.2088+-3.2542 452.7665+-1.0953 might be 1.0010x faster TipOfTree FixFlushes V8Spider: crypto 56.2053+-1.8242 55.3287+-1.3181 might be 1.0158x faster deltablue 98.6609+-6.1693 97.2432+-2.4867 might be 1.0146x faster earley-boyer 44.2807+-0.5750 ? 45.3958+-1.8950 ? might be 1.0252x slower raytrace 41.0197+-2.9258 40.6875+-1.4953 regexp 83.1180+-2.1280 82.4667+-3.1621 richards 78.0810+-1.3962 ? 80.7897+-2.2395 ? might be 1.0347x slower splay 40.5217+-1.4179 38.9058+-1.4838 might be 1.0415x faster <geometric> 59.4905+-0.5631 59.2695+-0.7464 might be 1.0037x faster TipOfTree FixFlushes Octane: encrypt 0.20377+-0.00269 0.20233+-0.00089 decrypt 3.57503+-0.05829 ? 3.57697+-0.04028 ? deltablue x2 0.20811+-0.00233 0.20738+-0.00235 earley 0.49650+-0.00422 ^ 0.46738+-0.00169 ^ definitely 1.0623x faster boyer 6.61524+-0.03985 ? 6.62534+-0.03227 ? navier-stokes x2 5.20999+-0.03497 5.18836+-0.04173 raytrace x2 1.32352+-0.08323 1.30107+-0.08201 might be 1.0173x faster richards x2 0.12189+-0.00058 ? 0.12359+-0.00296 ? might be 1.0139x slower splay x2 0.40355+-0.00479 0.39645+-0.00244 might be 1.0179x faster regexp x2 32.15144+-0.29004 31.68904+-0.20602 might be 1.0146x faster pdfjs x2 44.94805+-0.26169 ? 44.98965+-0.45707 ? mandreel x2 49.72953+-0.47746 ? 50.17446+-0.63541 ? gbemu x2 42.88270+-2.69640 42.54507+-2.16897 closure 0.55971+-0.00228 ? 0.56091+-0.00380 ? jquery 7.14935+-0.05274 7.14743+-0.08462 box2d x2 12.56407+-0.46305 12.44883+-0.07426 zlib x2 397.39975+-6.18673 391.14673+-15.13512 might be 1.0160x faster typescript x2 835.47457+-14.43962 833.72021+-7.31282 <geometric> 6.75757+-0.05200 6.71261+-0.02732 might be 1.0067x faster TipOfTree FixFlushes Kraken: ai-astar 277.756+-1.084 277.248+-2.243 audio-beat-detection 106.692+-0.700 106.069+-0.841 audio-dft 118.235+-2.778 ? 118.555+-1.568 ? audio-fft 84.973+-5.680 ? 87.356+-3.823 ? might be 1.0280x slower audio-oscillator 79.477+-1.370 79.392+-2.446 imaging-darkroom 105.007+-1.897 ? 106.580+-2.779 ? might be 1.0150x slower imaging-desaturate 65.202+-1.965 63.135+-0.176 might be 1.0327x faster imaging-gaussian-blur 112.938+-0.871 ? 115.368+-4.801 ? might be 1.0215x slower json-parse-financial 46.263+-1.967 44.745+-1.560 might be 1.0339x faster json-stringify-tinderbox 29.908+-0.291 ? 35.611+-11.625 ? might be 1.1907x slower stanford-crypto-aes 58.651+-0.992 ? 58.992+-0.996 ? stanford-crypto-ccm 60.910+-1.842 60.377+-2.478 stanford-crypto-pbkdf2 136.914+-2.426 ? 139.666+-3.861 ? might be 1.0201x slower stanford-crypto-sha256-iterative 53.711+-2.007 52.826+-1.857 might be 1.0168x faster <arithmetic> 95.474+-0.754 ? 96.137+-1.296 ? might be 1.0069x slower TipOfTree FixFlushes JSRegress: abs-boolean 2.7027+-0.0513 ? 2.7029+-0.1546 ? adapt-to-double-divide 16.7830+-0.2026 ? 16.9081+-0.6328 ? aliased-arguments-getbyval 1.3115+-0.1498 ? 1.3312+-0.2185 ? might be 1.0150x slower allocate-big-object 2.8768+-0.1618 ? 2.8897+-0.1094 ? arguments-named-and-reflective 12.3073+-0.6325 ? 12.6879+-1.5440 ? might be 1.0309x slower arguments-out-of-bounds 14.8818+-0.1954 ? 15.0011+-0.5254 ? arguments-strict-mode 10.7858+-0.8355 ? 11.1653+-0.9418 ? might be 1.0352x slower arguments 9.4161+-0.4597 9.2974+-0.3373 might be 1.0128x faster arity-mismatch-inlining 0.8522+-0.0569 0.8482+-0.0544 array-access-polymorphic-structure 7.1320+-0.9531 6.7987+-0.1754 might be 1.0490x faster array-nonarray-polymorhpic-access 34.4101+-1.6014 ? 35.0487+-0.9686 ? might be 1.0186x slower array-prototype-every 87.0811+-2.6597 86.6569+-1.8940 array-prototype-forEach 84.2189+-3.2807 82.6706+-2.0276 might be 1.0187x faster array-prototype-map 94.5478+-2.6241 91.0002+-2.4807 might be 1.0390x faster array-prototype-some 87.2333+-2.2537 86.2178+-3.2543 might be 1.0118x faster array-splice-contiguous 41.7316+-0.9114 ? 41.8336+-1.1458 ? array-with-double-add 4.2607+-0.3663 4.1215+-0.0798 might be 1.0338x faster array-with-double-increment 3.3075+-0.1210 3.2309+-0.0453 might be 1.0237x faster array-with-double-mul-add 5.2007+-0.3669 5.0233+-0.1769 might be 1.0353x faster array-with-double-sum 3.3022+-0.0916 ? 3.5454+-0.4205 ? might be 1.0737x slower array-with-int32-add-sub 6.7732+-0.0930 6.7561+-0.1291 array-with-int32-or-double-sum 3.5061+-0.3128 3.2812+-0.0214 might be 1.0685x faster ArrayBuffer-DataView-alloc-large-long-lived 33.1165+-1.9494 32.7015+-1.0141 might be 1.0127x faster ArrayBuffer-DataView-alloc-long-lived 14.4448+-1.9521 13.6254+-0.9764 might be 1.0601x faster ArrayBuffer-Int32Array-byteOffset 3.8180+-0.1671 ? 4.1637+-0.4593 ? might be 1.0905x slower ArrayBuffer-Int8Array-alloc-large-long-lived 33.3724+-1.8540 ! 35.9156+-0.2737 ! definitely 1.0762x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 23.4832+-1.3976 ? 25.5141+-3.2965 ? might be 1.0865x slower ArrayBuffer-Int8Array-alloc-long-lived 14.1354+-2.1210 13.5532+-1.3170 might be 1.0430x faster ArrayBuffer-Int8Array-alloc 11.7976+-1.6683 11.1233+-0.7976 might be 1.0606x faster asmjs_bool_bug 7.9049+-0.2931 7.7338+-0.1261 might be 1.0221x faster assign-custom-setter-polymorphic 3.3591+-0.4450 3.2028+-0.4255 might be 1.0488x faster assign-custom-setter 4.7884+-0.4813 4.5016+-0.5654 might be 1.0637x faster basic-set 8.5559+-0.4309 8.3099+-0.2453 might be 1.0296x faster big-int-mul 4.1201+-0.1992 3.9993+-0.0353 might be 1.0302x faster boolean-test 3.1100+-0.3165 3.0148+-0.0692 might be 1.0316x faster branch-fold 3.8427+-0.2802 3.7947+-0.2119 might be 1.0126x faster branch-on-string-as-boolean 19.7327+-1.3384 ? 19.9353+-3.2717 ? might be 1.0103x slower by-val-generic 8.0625+-0.3208 ? 8.0830+-0.2633 ? call-spread-apply 32.2268+-1.5642 ? 32.5307+-2.0838 ? call-spread-call 28.4589+-1.6170 ? 28.8468+-1.0436 ? might be 1.0136x slower captured-assignments 0.4430+-0.0169 ? 0.4661+-0.0551 ? might be 1.0522x slower cast-int-to-double 5.1919+-0.0790 ? 5.2998+-0.1187 ? might be 1.0208x slower cell-argument 9.2255+-1.3021 8.4251+-0.1867 might be 1.0950x faster cfg-simplify 2.9128+-0.1049 2.7841+-0.0563 might be 1.0462x faster chain-getter-access 9.1550+-0.1187 ? 9.2526+-0.3083 ? might be 1.0107x slower cmpeq-obj-to-obj-other 11.8265+-1.7667 ? 12.8609+-0.9293 ? might be 1.0875x slower constant-test 4.9437+-0.1060 4.8981+-0.0300 create-lots-of-functions 12.6611+-2.5880 11.5870+-0.2591 might be 1.0927x faster DataView-custom-properties 38.1572+-1.2376 ? 39.5195+-1.7324 ? might be 1.0357x slower deconstructing-parameters-overridden-by-function 0.5642+-0.0846 0.5131+-0.0383 might be 1.0996x faster delay-tear-off-arguments-strictmode 13.9734+-0.2796 ? 14.5984+-0.8285 ? might be 1.0447x slower deltablue-varargs 204.5814+-4.7489 ? 204.7906+-1.8839 ? destructuring-arguments 16.9709+-0.2275 ? 17.1934+-0.2053 ? might be 1.0131x slower destructuring-swap 4.9442+-0.0412 4.9410+-0.0361 direct-arguments-getbyval 1.2399+-0.1220 1.2153+-0.0311 might be 1.0203x faster div-boolean-double 5.2365+-0.0574 ? 5.2614+-0.0940 ? div-boolean 7.8307+-0.1149 7.7703+-0.0220 double-get-by-val-out-of-bounds 4.5317+-0.0636 4.5264+-0.0195 double-pollution-getbyval 8.8909+-0.0795 8.8770+-0.1215 double-pollution-putbyoffset 4.3934+-0.1488 4.2957+-0.0497 might be 1.0227x faster double-to-int32-typed-array-no-inline 2.3742+-0.3377 ? 2.5338+-0.2602 ? might be 1.0672x slower double-to-int32-typed-array 1.9251+-0.0732 ? 2.0035+-0.0593 ? might be 1.0407x slower double-to-uint32-typed-array-no-inline 2.3573+-0.0859 2.2957+-0.0359 might be 1.0268x faster double-to-uint32-typed-array 2.0971+-0.2386 2.0656+-0.0935 might be 1.0153x faster elidable-new-object-dag 42.3341+-0.9975 ? 43.8053+-2.3603 ? might be 1.0348x slower elidable-new-object-roflcopter 47.0483+-1.1792 ? 47.1202+-1.6498 ? elidable-new-object-then-call 40.3153+-1.6702 ? 40.5500+-0.9315 ? elidable-new-object-tree 45.4869+-0.7347 ? 46.3528+-1.4798 ? might be 1.0190x slower empty-string-plus-int 5.4881+-0.0990 5.4199+-0.0682 might be 1.0126x faster emscripten-cube2hash 38.8105+-1.4199 ? 39.3670+-2.6794 ? might be 1.0143x slower exit-length-on-plain-object 14.5781+-1.6267 ? 16.5515+-1.4632 ? might be 1.1354x slower external-arguments-getbyval 1.2953+-0.1237 1.2614+-0.0844 might be 1.0269x faster external-arguments-putbyval 2.3106+-0.0413 ? 2.3883+-0.1318 ? might be 1.0337x slower fixed-typed-array-storage-var-index 1.2395+-0.0459 ? 1.2499+-0.1344 ? fixed-typed-array-storage 0.8869+-0.0255 ? 0.9163+-0.0540 ? might be 1.0332x slower Float32Array-matrix-mult 4.7165+-0.4745 ? 5.0303+-0.8587 ? might be 1.0665x slower Float32Array-to-Float64Array-set 54.2428+-2.9322 ? 55.8473+-0.7108 ? might be 1.0296x slower Float64Array-alloc-long-lived 69.1879+-1.1964 68.9905+-1.7678 Float64Array-to-Int16Array-set 69.6098+-1.5345 ? 71.9537+-2.7291 ? might be 1.0337x slower fold-double-to-int 14.0565+-0.7797 13.3824+-0.2644 might be 1.0504x faster fold-get-by-id-to-multi-get-by-offset-rare-int 10.2364+-1.3504 ? 10.7108+-1.3639 ? might be 1.0463x slower fold-get-by-id-to-multi-get-by-offset 10.2716+-1.0439 ? 10.2748+-0.6696 ? fold-multi-get-by-offset-to-get-by-offset 8.8549+-0.7976 ? 9.4860+-0.9669 ? might be 1.0713x slower fold-multi-get-by-offset-to-poly-get-by-offset 9.5313+-0.7020 8.6451+-0.7013 might be 1.1025x faster fold-multi-put-by-offset-to-poly-put-by-offset 9.3313+-1.2747 8.2090+-1.0934 might be 1.1367x faster fold-multi-put-by-offset-to-put-by-offset 6.9622+-0.7526 5.1729+-1.1084 might be 1.3459x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.6564+-0.4739 9.6425+-0.4024 fold-put-by-id-to-multi-put-by-offset 9.8288+-1.5575 ? 9.9024+-0.6081 ? fold-put-structure 7.4146+-0.5263 6.3717+-1.5783 might be 1.1637x faster for-of-iterate-array-entries 4.8534+-0.2671 4.7095+-0.1514 might be 1.0306x faster for-of-iterate-array-keys 3.9083+-0.3172 3.7275+-0.0483 might be 1.0485x faster for-of-iterate-array-values 3.8464+-0.2577 ? 4.3894+-1.3624 ? might be 1.1412x slower fround 21.0835+-0.5718 21.0037+-0.6203 ftl-library-inlining-dataview 67.9950+-3.6610 ? 68.7268+-3.3829 ? might be 1.0108x slower ftl-library-inlining 74.3175+-17.1558 ? 82.1043+-18.8464 ? might be 1.1048x slower function-dot-apply 1.9672+-0.0876 ? 1.9965+-0.0780 ? might be 1.0149x slower function-test 2.9972+-0.2973 ? 3.1333+-0.6862 ? might be 1.0454x slower function-with-eval 103.9739+-2.5768 ? 105.6593+-2.9615 ? might be 1.0162x slower gcse-poly-get-less-obvious 20.5209+-2.5920 18.4229+-0.8055 might be 1.1139x faster gcse-poly-get 21.0702+-2.5311 20.4757+-1.2054 might be 1.0290x faster gcse 4.3929+-0.1277 ? 4.4677+-0.3423 ? might be 1.0170x slower get-by-id-bimorphic-check-structure-elimination-simple 2.7164+-0.0180 ? 2.9861+-0.4113 ? might be 1.0993x slower get-by-id-bimorphic-check-structure-elimination 6.1397+-0.2439 ? 6.2426+-0.3317 ? might be 1.0168x slower get-by-id-chain-from-try-block 6.5614+-0.0644 6.5345+-0.2123 get-by-id-check-structure-elimination 5.1490+-0.0873 ? 5.4983+-0.5912 ? might be 1.0678x slower get-by-id-proto-or-self 17.1917+-0.6265 ? 17.4296+-0.8510 ? might be 1.0138x slower get-by-id-quadmorphic-check-structure-elimination-simple 3.1749+-0.0369 ? 3.4273+-0.6193 ? might be 1.0795x slower get-by-id-self-or-proto 17.6765+-0.6543 17.6280+-0.6384 get-by-val-out-of-bounds 4.3617+-0.0319 ? 4.3707+-0.1074 ? get_callee_monomorphic 2.8857+-0.0660 2.8318+-0.0991 might be 1.0190x faster get_callee_polymorphic 3.7092+-0.1043 ? 3.7993+-0.0778 ? might be 1.0243x slower getter-no-activation 5.0398+-0.3053 ? 5.0892+-0.4343 ? getter-richards 127.3571+-5.7867 ? 129.0267+-8.1238 ? might be 1.0131x slower getter 6.1389+-0.6656 5.9548+-0.5345 might be 1.0309x faster global-var-const-infer-fire-from-opt 0.9598+-0.1183 0.9462+-0.0834 might be 1.0144x faster global-var-const-infer 0.8018+-0.1185 ? 0.8322+-0.0695 ? might be 1.0380x slower HashMap-put-get-iterate-keys 28.6503+-0.9673 ? 29.7057+-2.1596 ? might be 1.0368x slower HashMap-put-get-iterate 30.4670+-1.6284 ? 32.0458+-2.0970 ? might be 1.0518x slower HashMap-string-put-get-iterate 30.3384+-2.8492 29.5978+-1.8242 might be 1.0250x faster hoist-make-rope 12.3295+-0.5883 ? 12.7663+-0.6985 ? might be 1.0354x slower hoist-poly-check-structure-effectful-loop 5.9095+-1.7344 5.0274+-0.0330 might be 1.1755x faster hoist-poly-check-structure 3.6689+-0.1043 ? 3.7116+-0.1878 ? might be 1.0116x slower imul-double-only 9.0398+-1.0223 8.6160+-0.8974 might be 1.0492x faster imul-int-only 10.0515+-0.6175 ? 10.1023+-0.4109 ? imul-mixed 8.4932+-0.3293 8.2504+-0.1378 might be 1.0294x faster in-four-cases 20.5553+-0.3670 ? 20.7941+-0.5388 ? might be 1.0116x slower in-one-case-false 10.2592+-0.5411 10.1653+-0.3437 in-one-case-true 10.2427+-0.5815 10.2122+-0.4155 in-two-cases 10.6033+-0.6255 10.3909+-0.3055 might be 1.0204x faster indexed-properties-in-objects 3.0175+-0.1267 ? 3.3990+-0.4873 ? might be 1.1264x slower infer-closure-const-then-mov-no-inline 4.4832+-0.6114 4.1105+-0.3669 might be 1.0907x faster infer-closure-const-then-mov 19.5669+-0.2334 ? 19.6779+-0.2376 ? infer-closure-const-then-put-to-scope-no-inline 11.3416+-0.8396 11.0669+-0.1389 might be 1.0248x faster infer-closure-const-then-put-to-scope 21.8019+-0.9450 ? 22.1827+-1.2380 ? might be 1.0175x slower infer-closure-const-then-reenter-no-inline 50.7107+-2.3586 49.2225+-1.7688 might be 1.0302x faster infer-closure-const-then-reenter 23.8973+-2.0087 23.6892+-1.9128 infer-constant-global-property 32.0611+-1.7642 30.7223+-1.1730 might be 1.0436x faster infer-constant-property 2.7118+-0.0388 ? 2.7247+-0.0342 ? infer-one-time-closure-ten-vars 12.5710+-0.5820 ? 13.9993+-1.5014 ? might be 1.1136x slower infer-one-time-closure-two-vars 12.5271+-1.1909 ? 12.8317+-1.1697 ? might be 1.0243x slower infer-one-time-closure 12.6816+-1.4004 11.8500+-0.2406 might be 1.0702x faster infer-one-time-deep-closure 20.6825+-0.2492 ? 22.0098+-1.6606 ? might be 1.0642x slower inline-arguments-access 4.4587+-0.0406 ? 4.5121+-0.0913 ? might be 1.0120x slower inline-arguments-aliased-access 4.4489+-0.0541 ? 4.5492+-0.1329 ? might be 1.0225x slower inline-arguments-local-escape 4.4865+-0.0604 ? 4.5350+-0.1171 ? might be 1.0108x slower inline-get-scoped-var 4.9620+-0.3366 4.8868+-0.1737 might be 1.0154x faster inlined-put-by-id-transition 11.6550+-0.6001 11.3121+-1.1035 might be 1.0303x faster int-or-other-abs-then-get-by-val 4.8704+-0.1341 ? 4.9982+-0.4239 ? might be 1.0262x slower int-or-other-abs-zero-then-get-by-val 17.5977+-1.5837 16.9208+-0.8647 might be 1.0400x faster int-or-other-add-then-get-by-val 3.9660+-0.0875 ? 3.9995+-0.1892 ? int-or-other-add 5.3936+-0.2955 ? 5.4065+-0.2319 ? int-or-other-div-then-get-by-val 4.1429+-0.0331 ? 4.1584+-0.0208 ? int-or-other-max-then-get-by-val 4.2337+-0.2096 4.1874+-0.0365 might be 1.0111x faster int-or-other-min-then-get-by-val 4.2274+-0.1726 ? 4.3184+-0.3736 ? might be 1.0215x slower int-or-other-mod-then-get-by-val 3.7913+-0.0554 ? 3.8531+-0.1325 ? might be 1.0163x slower int-or-other-mul-then-get-by-val 3.6562+-0.1198 ? 3.8054+-0.3367 ? might be 1.0408x slower int-or-other-neg-then-get-by-val 4.6315+-0.0391 4.5982+-0.0397 int-or-other-neg-zero-then-get-by-val 18.0174+-1.5554 16.5332+-0.2734 might be 1.0898x faster int-or-other-sub-then-get-by-val 4.2475+-0.1656 4.2155+-0.1874 int-or-other-sub 3.3929+-0.0279 ? 3.4355+-0.1169 ? might be 1.0126x slower int-overflow-local 4.3379+-0.1117 ? 4.5060+-0.4129 ? might be 1.0387x slower Int16Array-alloc-long-lived 48.3522+-1.5494 ? 49.5811+-1.2457 ? might be 1.0254x slower Int16Array-bubble-sort-with-byteLength 19.6064+-0.3038 ? 19.7798+-0.2850 ? Int16Array-bubble-sort 20.3280+-1.2687 19.7940+-0.3302 might be 1.0270x faster Int16Array-load-int-mul 1.5054+-0.0544 1.5048+-0.0654 Int16Array-to-Int32Array-set 58.5155+-1.3186 ^ 54.2957+-0.4077 ^ definitely 1.0777x faster Int32Array-alloc-large 24.2395+-1.0045 23.8206+-1.1225 might be 1.0176x faster Int32Array-alloc-long-lived 54.0110+-1.5038 53.5691+-1.4888 Int32Array-alloc 3.5042+-0.4049 ? 3.5615+-0.3829 ? might be 1.0163x slower Int32Array-Int8Array-view-alloc 7.3269+-1.2445 ? 8.4428+-1.3304 ? might be 1.1523x slower int52-spill 6.3855+-0.0812 ? 6.4555+-0.1212 ? might be 1.0110x slower Int8Array-alloc-long-lived 44.1628+-1.2186 43.5854+-1.4608 might be 1.0132x faster Int8Array-load-with-byteLength 3.3239+-0.0518 ? 3.6325+-0.5333 ? might be 1.0929x slower Int8Array-load 3.5526+-0.4754 3.4019+-0.1349 might be 1.0443x faster integer-divide 11.1023+-0.2980 10.8829+-0.1014 might be 1.0202x faster integer-modulo 2.0688+-0.1043 ? 2.1068+-0.1841 ? might be 1.0184x slower is-boolean-fold-tricky 4.5078+-0.1161 ? 4.5872+-0.2235 ? might be 1.0176x slower is-boolean-fold 3.0148+-0.3010 2.8413+-0.0540 might be 1.0610x faster is-function-fold-tricky-internal-function 12.1214+-0.1634 11.9386+-0.1689 might be 1.0153x faster is-function-fold-tricky 4.7563+-0.3444 4.6564+-0.3251 might be 1.0215x faster is-function-fold 2.9061+-0.0570 ? 3.0264+-0.3704 ? might be 1.0414x slower is-number-fold-tricky 4.6653+-0.2615 4.4657+-0.0423 might be 1.0447x faster is-number-fold 2.9058+-0.0791 ? 3.1450+-0.2746 ? might be 1.0823x slower is-object-or-null-fold-functions 2.9987+-0.1121 2.9233+-0.0619 might be 1.0258x faster is-object-or-null-fold-less-tricky 4.6034+-0.1135 ? 4.6077+-0.0508 ? is-object-or-null-fold-tricky 6.6364+-0.0806 ? 6.6534+-0.1640 ? is-object-or-null-fold 2.9161+-0.0443 ? 3.0778+-0.3355 ? might be 1.0554x slower is-object-or-null-trickier-function 4.9547+-0.6631 4.8407+-0.5706 might be 1.0236x faster is-object-or-null-trickier-internal-function 12.4867+-0.1930 ? 12.7548+-0.2425 ? might be 1.0215x slower is-object-or-null-tricky-function 4.6456+-0.1165 4.5561+-0.0632 might be 1.0196x faster is-object-or-null-tricky-internal-function 9.3100+-0.0536 9.2108+-0.0560 might be 1.0108x faster is-string-fold-tricky 4.6915+-0.2240 4.4223+-0.1021 might be 1.0609x faster is-string-fold 2.8658+-0.0642 ? 2.9018+-0.0988 ? might be 1.0125x slower is-undefined-fold-tricky 3.9025+-0.2941 3.8232+-0.2216 might be 1.0208x faster is-undefined-fold 2.8420+-0.0436 ? 2.9948+-0.4103 ? might be 1.0538x slower large-int-captured 4.6397+-0.0929 4.6012+-0.0369 large-int-neg 17.0888+-1.1217 16.7538+-1.1261 might be 1.0200x faster large-int 15.6400+-1.2512 15.1407+-0.8393 might be 1.0330x faster logical-not 4.5174+-0.2445 4.4528+-0.1325 might be 1.0145x faster lots-of-fields 13.0080+-0.4355 ? 14.5783+-1.3639 ? might be 1.1207x slower make-indexed-storage 3.2910+-0.2582 3.1659+-0.0729 might be 1.0395x faster make-rope-cse 5.3188+-0.6466 4.8657+-0.1737 might be 1.0931x faster marsaglia-larger-ints 36.9080+-1.0688 35.9996+-0.3640 might be 1.0252x faster marsaglia-osr-entry 23.3769+-0.6348 ? 23.5201+-0.5422 ? max-boolean 2.5894+-0.1581 ? 2.6517+-0.3310 ? might be 1.0241x slower method-on-number 17.6563+-0.3164 16.9257+-0.5246 might be 1.0432x faster min-boolean 2.6417+-0.3486 2.5461+-0.0752 might be 1.0375x faster minus-boolean-double 3.3185+-0.3116 3.1501+-0.0472 might be 1.0535x faster minus-boolean 2.4259+-0.1045 2.4106+-0.1944 misc-strict-eq 38.6219+-2.5335 38.6214+-3.0014 mod-boolean-double 10.9680+-0.2027 10.9383+-0.1288 mod-boolean 7.8866+-0.1159 ? 7.9641+-0.2795 ? mul-boolean-double 3.7271+-0.0625 ? 3.7415+-0.0826 ? mul-boolean 2.9235+-0.0758 2.8865+-0.0828 might be 1.0128x faster neg-boolean 3.3834+-0.3818 3.2188+-0.1594 might be 1.0511x faster negative-zero-divide 0.4142+-0.0933 0.3892+-0.0488 might be 1.0641x faster negative-zero-modulo 0.3731+-0.0431 0.3685+-0.0329 might be 1.0126x faster negative-zero-negate 0.3559+-0.0886 0.3353+-0.0049 might be 1.0614x faster nested-function-parsing 38.1937+-0.4916 ? 38.6465+-0.6802 ? might be 1.0119x slower new-array-buffer-dead 113.8680+-1.6513 112.9664+-2.9777 new-array-buffer-push 6.8075+-0.1348 ? 7.1222+-0.6794 ? might be 1.0462x slower new-array-dead 19.2628+-0.5602 ? 19.5837+-0.4771 ? might be 1.0167x slower new-array-push 3.9297+-0.1643 ? 3.9462+-0.1420 ? no-inline-constructor 124.1392+-3.6336 123.2277+-2.8394 number-test 2.9727+-0.0344 ? 3.1208+-0.1532 ? might be 1.0499x slower object-closure-call 5.5291+-0.1708 5.4864+-0.1646 object-test 2.7715+-0.0367 2.7454+-0.0344 obvious-sink-pathology-taken 138.4963+-2.9326 ? 140.0126+-1.6559 ? might be 1.0109x slower obvious-sink-pathology 132.4417+-3.0134 ? 132.7460+-2.3639 ? obviously-elidable-new-object 35.2621+-1.2057 ? 35.9709+-1.2634 ? might be 1.0201x slower plus-boolean-arith 2.6254+-0.3235 2.5967+-0.1418 might be 1.0111x faster plus-boolean-double 3.3363+-0.4157 ? 3.3387+-0.3540 ? plus-boolean 2.3548+-0.0379 ? 2.4469+-0.1084 ? might be 1.0391x slower poly-chain-access-different-prototypes-simple 3.3302+-0.0875 3.2947+-0.0558 might be 1.0108x faster poly-chain-access-different-prototypes 2.7915+-0.2762 2.6313+-0.0885 might be 1.0609x faster poly-chain-access-simpler 3.2813+-0.0427 ? 3.3430+-0.0885 ? might be 1.0188x slower poly-chain-access 2.6062+-0.0967 2.6009+-0.0527 poly-stricteq 58.9608+-1.5563 57.4759+-1.9702 might be 1.0258x faster polymorphic-array-call 1.2801+-0.1017 ? 1.2924+-0.1646 ? polymorphic-get-by-id 3.1355+-0.0537 ? 3.2349+-0.3431 ? might be 1.0317x slower polymorphic-put-by-id 29.6040+-2.3045 ? 29.7677+-2.2631 ? polymorphic-structure 13.5763+-0.2671 ? 13.9265+-0.6289 ? might be 1.0258x slower polyvariant-monomorphic-get-by-id 8.5925+-0.1377 8.5105+-0.1838 proto-getter-access 9.1289+-0.2493 ? 9.2083+-0.3762 ? put-by-id-replace-and-transition 9.0573+-0.0541 ? 9.0705+-0.1303 ? put-by-id-slightly-polymorphic 2.9412+-0.1677 2.9203+-0.0931 put-by-id 12.7971+-0.1255 ? 12.9219+-0.6613 ? put-by-val-direct 0.4845+-0.0610 0.4522+-0.0049 might be 1.0714x faster put-by-val-large-index-blank-indexing-type 6.2320+-1.0382 ? 6.3797+-0.6117 ? might be 1.0237x slower put-by-val-machine-int 2.7181+-0.1127 2.6558+-0.0540 might be 1.0235x faster rare-osr-exit-on-local 15.2973+-0.4130 15.0255+-0.3992 might be 1.0181x faster register-pressure-from-osr 21.1612+-0.1658 ? 21.2372+-0.2750 ? setter 5.5635+-0.5722 ? 5.6596+-0.6213 ? might be 1.0173x slower simple-activation-demo 25.5509+-1.6958 25.2699+-1.8445 might be 1.0111x faster simple-getter-access 11.7633+-0.2205 ? 11.8043+-0.1560 ? simple-poly-call-nested 8.5723+-0.5497 8.1713+-0.3022 might be 1.0491x faster simple-poly-call 1.3768+-0.1985 1.3060+-0.0738 might be 1.0542x faster sin-boolean 23.0407+-0.8388 22.0588+-1.5967 might be 1.0445x faster singleton-scope 62.5273+-1.2741 ? 62.5652+-1.6464 ? sink-function 12.0807+-0.3123 12.0660+-0.2033 sink-huge-activation 19.8909+-0.8166 19.5741+-0.8532 might be 1.0162x faster sinkable-new-object-dag 71.3271+-1.4102 71.2250+-1.3615 sinkable-new-object-taken 52.5273+-2.6969 ? 54.7729+-3.7294 ? might be 1.0428x slower sinkable-new-object 39.1763+-0.8125 ? 39.2488+-1.5282 ? slow-array-profile-convergence 2.8143+-0.0925 ? 3.0339+-0.5161 ? might be 1.0780x slower slow-convergence 2.7387+-0.0642 ? 2.8791+-0.3306 ? might be 1.0513x slower sorting-benchmark 20.8358+-0.3019 20.4950+-0.2321 might be 1.0166x faster sparse-conditional 1.1947+-0.1410 1.1789+-0.0606 might be 1.0134x faster splice-to-remove 16.6397+-0.3176 ? 17.2749+-1.4743 ? might be 1.0382x slower string-char-code-at 16.3120+-0.6751 16.2601+-0.8493 string-concat-object 2.5890+-0.0938 ? 2.7814+-0.4054 ? might be 1.0743x slower string-concat-pair-object 2.5787+-0.1791 ? 2.6702+-0.2534 ? might be 1.0355x slower string-concat-pair-simple 12.0873+-0.9984 12.0544+-0.9999 string-concat-simple 12.2936+-0.1043 ? 12.9039+-1.2198 ? might be 1.0496x slower string-cons-repeat 8.5324+-1.0909 ? 9.1497+-1.0150 ? might be 1.0723x slower string-cons-tower 8.6259+-0.7991 ? 8.6934+-1.0254 ? string-equality 18.6851+-0.8882 18.4803+-1.0390 might be 1.0111x faster string-get-by-val-big-char 7.3290+-0.5309 7.1244+-0.0768 might be 1.0287x faster string-get-by-val-out-of-bounds-insane 4.1221+-0.6996 3.7914+-0.2384 might be 1.0872x faster string-get-by-val-out-of-bounds 5.2445+-0.0552 ? 5.4232+-0.4482 ? might be 1.0341x slower string-get-by-val 3.2658+-0.0515 ? 3.3028+-0.1461 ? might be 1.0113x slower string-hash 2.1313+-0.2482 2.0168+-0.0115 might be 1.0567x faster string-long-ident-equality 14.8256+-0.6439 14.5667+-0.1872 might be 1.0178x faster string-out-of-bounds 14.9976+-0.3483 14.7776+-0.1310 might be 1.0149x faster string-repeat-arith 32.8398+-3.4976 ? 34.2504+-2.4989 ? might be 1.0430x slower string-sub 64.8580+-2.3647 ? 67.2200+-2.4004 ? might be 1.0364x slower string-test 2.8808+-0.0451 ? 3.1073+-0.3682 ? might be 1.0786x slower string-var-equality 33.9859+-1.4914 ? 35.2830+-1.8738 ? might be 1.0382x slower structure-hoist-over-transitions 2.7795+-0.2382 2.7164+-0.1044 might be 1.0232x faster substring-concat-weird 40.6672+-1.4992 ? 40.8313+-1.9525 ? substring-concat 42.5214+-2.3840 ? 42.6772+-2.1479 ? substring 46.2477+-1.0668 ? 47.2819+-2.0685 ? might be 1.0224x slower switch-char-constant 2.7310+-0.0839 ? 2.7777+-0.1198 ? might be 1.0171x slower switch-char 6.9277+-1.0170 6.9072+-1.0692 switch-constant 8.6486+-0.4143 8.4929+-0.2026 might be 1.0183x faster switch-string-basic-big-var 17.4106+-0.8053 ? 17.4760+-0.7813 ? switch-string-basic-big 14.3651+-0.2067 14.2292+-0.2057 switch-string-basic-var 14.5325+-0.1287 ? 15.3052+-1.0234 ? might be 1.0532x slower switch-string-basic 13.0536+-0.6469 12.7898+-0.1302 might be 1.0206x faster switch-string-big-length-tower-var 19.8093+-0.2870 ? 20.2684+-1.3006 ? might be 1.0232x slower switch-string-length-tower-var 14.9744+-0.2338 14.9380+-0.2146 switch-string-length-tower 12.3184+-0.0730 12.3080+-0.2069 switch-string-short 12.1850+-0.1951 ? 12.3017+-0.1727 ? switch 12.6895+-0.2292 12.5665+-0.1012 tear-off-arguments-simple 3.5018+-0.1890 ? 3.5922+-0.2038 ? might be 1.0258x slower tear-off-arguments 4.8077+-0.1358 ? 4.8116+-0.1523 ? temporal-structure 12.0252+-0.2649 ? 12.0981+-0.2116 ? to-int32-boolean 13.3348+-0.1204 ? 13.7385+-0.6945 ? might be 1.0303x slower try-catch-get-by-val-cloned-arguments 14.3358+-0.1792 ? 15.1010+-1.1703 ? might be 1.0534x slower try-catch-get-by-val-direct-arguments 6.5874+-0.3665 ? 6.6834+-0.1987 ? might be 1.0146x slower try-catch-get-by-val-scoped-arguments 8.0664+-1.0737 ? 8.2872+-1.3091 ? might be 1.0274x slower typed-array-get-set-by-val-profiling 32.4172+-0.9778 32.3330+-0.8516 undefined-property-access 341.2850+-4.7073 ? 342.1524+-3.4673 ? undefined-test 3.2398+-0.3604 3.0848+-0.2325 might be 1.0502x faster unprofiled-licm 23.2740+-0.7748 23.1159+-0.5787 varargs-call 14.1946+-0.2583 ? 14.3721+-0.8107 ? might be 1.0125x slower varargs-construct-inline 21.6658+-1.1628 ? 21.8522+-1.8688 ? varargs-construct 31.4531+-1.2326 31.0348+-0.5077 might be 1.0135x faster varargs-inline 8.9405+-0.2246 ? 9.0810+-0.2401 ? might be 1.0157x slower varargs-strict-mode 9.7415+-0.2188 ? 10.1671+-0.9580 ? might be 1.0437x slower varargs 9.8536+-0.3290 ? 9.9344+-0.4816 ? weird-inlining-const-prop 2.4982+-0.1957 2.3186+-0.1779 might be 1.0775x faster <geometric> 8.5592+-0.0263 8.5588+-0.0268 might be 1.0001x faster TipOfTree FixFlushes AsmBench: bigfib.cpp 495.1100+-2.4052 ? 497.0655+-4.3357 ? cray.c 427.9183+-3.8993 423.7480+-2.6068 dry.c 482.6205+-9.0997 481.7394+-9.7727 FloatMM.c 724.7424+-1.9782 724.0091+-1.1654 gcc-loops.cpp 4263.0283+-9.5587 ? 4286.3566+-55.3791 ? n-body.c 976.1954+-2.1400 ? 980.9128+-4.6878 ? Quicksort.c 422.9260+-7.2008 420.2486+-1.5073 stepanov_container.cpp 3621.0996+-22.2588 ? 3622.1635+-12.9061 ? Towers.c 259.7870+-0.5325 ? 261.1313+-2.6459 ? <geometric> 792.0364+-2.0692 ? 792.0976+-2.7174 ? might be 1.0001x slower TipOfTree FixFlushes CompressionBench: huffman 374.4856+-4.5038 ^ 359.8628+-4.2091 ^ definitely 1.0406x faster arithmetic-simple 396.7551+-5.1287 ? 397.4955+-4.6276 ? arithmetic-precise 299.9264+-3.2477 ? 303.4613+-6.1822 ? might be 1.0118x slower arithmetic-complex-precise 298.6718+-4.6066 295.6637+-3.4773 might be 1.0102x faster arithmetic-precise-order-0 424.4695+-6.0649 423.8506+-6.2288 arithmetic-precise-order-1 330.1265+-2.8701 324.2908+-3.0070 might be 1.0180x faster arithmetic-precise-order-2 364.4917+-9.1919 357.1160+-4.0710 might be 1.0207x faster arithmetic-simple-order-1 423.9655+-5.6373 ? 425.0317+-4.9172 ? arithmetic-simple-order-2 461.7207+-5.1088 ? 461.9953+-7.8743 ? lz-string 325.3846+-12.7547 320.9573+-3.5613 might be 1.0138x faster <geometric> 366.0962+-1.2592 362.9598+-1.9493 might be 1.0086x faster TipOfTree FixFlushes Geomean of preferred means: <scaled-result> 62.3523+-0.1816 62.3465+-0.2950 might be 1.0001x faster
Geoffrey Garen
Comment 5 2015-05-11 12:41:42 PDT
Comment on attachment 252756 [details] the patch r=me
Filip Pizlo
Comment 6 2015-05-11 15:45:05 PDT
Note You need to log in before you can comment on or make changes to this bug.