RESOLVED FIXED 144409
DFG Is<Blah> versions of TypeOf should fold based on proven input type
https://bugs.webkit.org/show_bug.cgi?id=144409
Summary DFG Is<Blah> versions of TypeOf should fold based on proven input type
Filip Pizlo
Reported 2015-04-29 14:31:56 PDT
Patch forthcoming.
Attachments
the patch (49.48 KB, patch)
2015-04-29 19:09 PDT, Filip Pizlo
ggaren: review+
Filip Pizlo
Comment 1 2015-04-29 19:09:00 PDT
Created attachment 252024 [details] the patch Still testing.
Filip Pizlo
Comment 2 2015-04-29 20:23:20 PDT
It does what it's supposed to do: 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 (r183602) "FoldIsBlah" at /Volumes/Data/pizlo/primary/OpenSource/WebKitBuild/Release/jsc (r183602) 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 FoldIsBlah SunSpider: 3d-cube 5.2610+-0.1213 ? 5.2811+-0.2528 ? 3d-morph 5.7855+-0.1552 5.7697+-0.0938 3d-raytrace 6.5436+-0.0971 6.5284+-0.1011 access-binary-trees 2.2102+-0.1125 ? 2.3667+-0.1526 ? might be 1.0708x slower access-fannkuch 6.1268+-0.1568 6.0251+-0.1672 might be 1.0169x faster access-nbody 2.9449+-0.2493 2.9333+-0.1166 access-nsieve 3.5039+-0.3858 3.3274+-0.0819 might be 1.0530x faster bitops-3bit-bits-in-byte 1.5420+-0.0198 ? 1.6050+-0.1333 ? might be 1.0408x slower bitops-bits-in-byte 3.5162+-0.3204 3.3079+-0.0479 might be 1.0630x faster bitops-bitwise-and 2.1493+-0.0512 ? 2.1748+-0.1285 ? might be 1.0119x slower bitops-nsieve-bits 3.3182+-0.0456 ! 3.5651+-0.1523 ! definitely 1.0744x slower controlflow-recursive 2.2133+-0.0352 ? 2.5216+-0.2904 ? might be 1.1393x slower crypto-aes 4.5183+-0.1988 ? 5.0359+-1.5961 ? might be 1.1146x slower crypto-md5 2.7415+-0.0895 ? 2.7568+-0.0833 ? crypto-sha1 2.6805+-0.2632 ? 2.7939+-0.2711 ? might be 1.0423x slower date-format-tofte 9.4432+-0.3644 ? 9.4707+-0.2448 ? date-format-xparb 5.7747+-0.1343 ? 6.2277+-1.1668 ? might be 1.0784x slower math-cordic 3.1809+-0.1085 3.0951+-0.0874 might be 1.0278x faster math-partial-sums 5.1880+-0.0965 ? 5.6412+-0.6819 ? might be 1.0873x slower math-spectral-norm 1.9288+-0.0801 ? 2.1010+-0.5351 ? might be 1.0893x slower regexp-dna 7.1833+-0.1074 ? 7.2404+-0.1635 ? string-base64 4.8807+-0.6855 4.7254+-0.1520 might be 1.0329x faster string-fasta 6.6701+-0.1634 ? 6.7811+-0.1199 ? might be 1.0166x slower string-tagcloud 10.1338+-1.2562 9.7338+-0.7593 might be 1.0411x faster string-unpack-code 19.3707+-0.5095 19.2923+-0.5401 string-validate-input 4.8741+-0.0724 ? 4.9320+-0.1224 ? might be 1.0119x slower <arithmetic> 5.1417+-0.0295 ? 5.2013+-0.0988 ? might be 1.0116x slower TipOfTree FoldIsBlah LongSpider: 3d-cube 868.6934+-6.8360 ? 871.6991+-10.5941 ? 3d-morph 1544.5434+-17.3147 1535.7220+-11.7650 3d-raytrace 736.0288+-8.4675 733.5576+-3.5679 access-binary-trees 1029.4556+-10.9870 ? 1036.4010+-6.6175 ? access-fannkuch 336.1115+-10.7271 327.2042+-10.8364 might be 1.0272x faster access-nbody 613.7266+-5.4490 610.9593+-1.0358 access-nsieve 875.0171+-10.5312 865.8153+-6.7859 might be 1.0106x faster bitops-3bit-bits-in-byte 44.4884+-0.3732 ? 44.6268+-1.1091 ? bitops-bits-in-byte 101.7821+-2.2440 101.7027+-0.7973 bitops-nsieve-bits 639.3554+-6.6857 635.5459+-4.4406 controlflow-recursive 481.0785+-6.7660 ? 486.2969+-5.7704 ? might be 1.0108x slower crypto-aes 705.5277+-6.6785 703.4562+-6.3806 crypto-md5 526.6530+-7.8721 526.3613+-2.7357 crypto-sha1 601.4713+-7.1349 ? 605.9780+-6.8395 ? date-format-tofte 758.7179+-21.3598 752.3047+-9.0901 date-format-xparb 789.2549+-20.7571 779.7400+-19.6860 might be 1.0122x faster math-cordic 591.1934+-2.8824 ? 594.9815+-5.9344 ? math-partial-sums 505.2236+-2.1672 ? 506.8837+-3.1804 ? math-spectral-norm 568.1899+-4.6489 567.1621+-7.2049 string-base64 382.0851+-8.5571 ? 382.7267+-5.8275 ? string-fasta 435.7965+-3.2067 ? 447.3440+-9.4899 ? might be 1.0265x slower string-tagcloud 199.5548+-3.8283 195.6214+-2.2307 might be 1.0201x faster <geometric> 495.1639+-2.5517 494.3915+-1.2266 might be 1.0016x faster TipOfTree FoldIsBlah V8Spider: crypto 56.9185+-0.3052 56.1290+-1.2766 might be 1.0141x faster deltablue 96.6147+-6.3703 ? 99.0321+-5.8147 ? might be 1.0250x slower earley-boyer 45.2196+-1.2658 44.6857+-0.7687 might be 1.0119x faster raytrace 43.3547+-3.7774 40.9347+-2.4339 might be 1.0591x faster regexp 81.5682+-2.2262 ? 83.2183+-1.4530 ? might be 1.0202x slower richards 80.3209+-1.3411 79.6392+-1.7077 splay 39.7518+-2.2404 ? 40.6357+-1.1468 ? might be 1.0222x slower <geometric> 59.9732+-0.6617 59.7836+-0.7339 might be 1.0032x faster TipOfTree FoldIsBlah Octane: encrypt 0.20366+-0.00330 ? 0.20477+-0.00285 ? decrypt 3.56541+-0.03834 ? 3.56699+-0.03218 ? deltablue x2 0.20864+-0.00129 ? 0.21020+-0.00216 ? earley 0.54143+-0.00471 0.53910+-0.00371 boyer 6.68674+-0.05515 ? 6.69482+-0.05382 ? navier-stokes x2 5.18831+-0.02146 ? 5.24120+-0.06621 ? might be 1.0102x slower raytrace x2 1.28965+-0.03072 1.26824+-0.04897 might be 1.0169x faster richards x2 0.12335+-0.00154 ? 0.12448+-0.00157 ? splay x2 0.40000+-0.00391 ? 0.40837+-0.00549 ? might be 1.0209x slower regexp x2 32.04929+-0.45371 31.99113+-0.36325 pdfjs x2 43.87325+-0.25958 43.83434+-0.29194 mandreel x2 50.31402+-0.48082 ? 50.32067+-0.53803 ? gbemu x2 41.73607+-0.82586 ? 43.38834+-3.02163 ? might be 1.0396x slower closure 0.58709+-0.07663 0.55757+-0.00956 might be 1.0529x faster jquery 7.11774+-0.05949 ? 7.11924+-0.08514 ? box2d x2 12.29127+-0.10848 12.27133+-0.06598 zlib x2 395.10438+-3.31505 393.50321+-1.42687 typescript x2 844.99215+-3.33247 841.41182+-19.68099 <geometric> 6.75079+-0.02566 ? 6.76592+-0.05121 ? might be 1.0022x slower TipOfTree FoldIsBlah Kraken: ai-astar 271.942+-3.198 ? 272.878+-5.767 ? audio-beat-detection 107.501+-0.846 106.814+-0.939 audio-dft 151.276+-2.275 ? 193.630+-111.157 ? might be 1.2800x slower audio-fft 85.567+-4.584 ? 88.278+-0.439 ? might be 1.0317x slower audio-oscillator 207.813+-1.983 ? 208.504+-1.708 ? imaging-darkroom 105.783+-2.479 ? 106.436+-1.390 ? imaging-desaturate 63.263+-1.156 63.134+-1.569 imaging-gaussian-blur 124.920+-32.832 112.924+-2.749 might be 1.1062x faster json-parse-financial 44.339+-1.020 ? 45.028+-1.365 ? might be 1.0156x slower json-stringify-tinderbox 57.321+-2.138 ? 57.583+-2.523 ? stanford-crypto-aes 63.625+-0.681 ? 63.664+-1.978 ? stanford-crypto-ccm 58.618+-6.446 ? 60.403+-6.447 ? might be 1.0305x slower stanford-crypto-pbkdf2 169.979+-4.976 167.222+-2.439 might be 1.0165x faster stanford-crypto-sha256-iterative 56.589+-2.118 ? 57.910+-3.978 ? might be 1.0234x slower <arithmetic> 112.038+-2.104 ? 114.601+-7.899 ? might be 1.0229x slower TipOfTree FoldIsBlah JSRegress: abs-boolean 2.6576+-0.0622 ? 2.6859+-0.0981 ? might be 1.0106x slower adapt-to-double-divide 16.6764+-0.2840 ? 16.6771+-0.1814 ? aliased-arguments-getbyval 1.2059+-0.0473 ? 1.2826+-0.1462 ? might be 1.0636x slower allocate-big-object 2.9055+-0.1524 2.7994+-0.1188 might be 1.0379x faster arguments-named-and-reflective 13.5117+-1.2725 13.3837+-1.6732 arguments-out-of-bounds 15.1315+-0.6946 14.8483+-0.2693 might be 1.0191x faster arguments-strict-mode 12.2786+-1.2116 ? 12.3051+-0.8687 ? arguments 10.9340+-0.5914 ? 10.9540+-1.3167 ? arity-mismatch-inlining 0.8319+-0.0310 ? 0.9137+-0.1515 ? might be 1.0983x slower array-access-polymorphic-structure 6.8551+-0.1090 ? 6.8722+-0.1701 ? array-nonarray-polymorhpic-access 35.1698+-1.1291 34.3298+-1.6032 might be 1.0245x faster array-prototype-every 85.4472+-1.9845 ? 87.7153+-2.2740 ? might be 1.0265x slower array-prototype-forEach 86.4113+-2.2794 86.2933+-1.3926 array-prototype-map 94.1704+-0.9604 ? 95.3857+-4.1657 ? might be 1.0129x slower array-prototype-some 88.1468+-3.5634 ? 89.9835+-2.7073 ? might be 1.0208x slower array-splice-contiguous 41.2075+-0.4822 ! 44.0875+-1.2279 ! definitely 1.0699x slower array-with-double-add 4.3391+-0.5129 4.2444+-0.3134 might be 1.0223x faster array-with-double-increment 3.2355+-0.1160 3.2003+-0.0431 might be 1.0110x faster array-with-double-mul-add 5.0886+-0.1228 5.0696+-0.1935 array-with-double-sum 3.2782+-0.0427 ? 3.4124+-0.2946 ? might be 1.0409x slower array-with-int32-add-sub 6.8074+-0.1059 ? 6.8462+-0.2516 ? array-with-int32-or-double-sum 3.3016+-0.0244 ? 3.3654+-0.1779 ? might be 1.0193x slower ArrayBuffer-DataView-alloc-large-long-lived 34.3882+-1.5373 33.3022+-2.3218 might be 1.0326x faster ArrayBuffer-DataView-alloc-long-lived 14.4486+-1.3930 14.0585+-1.3957 might be 1.0277x faster ArrayBuffer-Int32Array-byteOffset 3.9732+-0.5173 3.8178+-0.0324 might be 1.0407x faster ArrayBuffer-Int8Array-alloc-large-long-lived 34.6740+-1.9976 34.3195+-1.5334 might be 1.0103x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 23.8030+-1.8852 22.4767+-1.6632 might be 1.0590x faster ArrayBuffer-Int8Array-alloc-long-lived 14.1178+-1.7080 ? 14.5058+-1.4409 ? might be 1.0275x slower ArrayBuffer-Int8Array-alloc 12.8990+-1.3015 11.1895+-1.1278 might be 1.1528x faster asmjs_bool_bug 7.6908+-0.1702 7.6796+-0.1195 assign-custom-setter-polymorphic 3.6495+-0.5814 3.4661+-0.7953 might be 1.0529x faster assign-custom-setter 4.4061+-0.0532 ? 4.6346+-0.5924 ? might be 1.0519x slower basic-set 8.4917+-0.1894 ? 8.5509+-0.2291 ? big-int-mul 4.0031+-0.0700 ? 4.0511+-0.1338 ? might be 1.0120x slower boolean-test 3.0793+-0.1168 3.0550+-0.0651 branch-fold 3.7983+-0.1182 3.6663+-0.0164 might be 1.0360x faster branch-on-string-as-boolean 19.4959+-1.7217 18.8952+-0.3727 might be 1.0318x faster by-val-generic 8.0457+-0.1962 ? 8.1750+-0.4530 ? might be 1.0161x slower call-spread-apply 31.0175+-1.3321 30.7705+-1.0941 call-spread-call 26.2174+-1.6686 25.4056+-1.0949 might be 1.0320x faster captured-assignments 0.4519+-0.0490 0.4516+-0.0434 cast-int-to-double 5.3283+-0.1321 ? 5.3783+-0.1624 ? cell-argument 8.7884+-0.7384 ? 9.1040+-1.3719 ? might be 1.0359x slower cfg-simplify 3.1684+-0.1403 2.9930+-0.1533 might be 1.0586x faster chain-getter-access 9.8873+-0.2174 ? 9.9914+-0.1270 ? might be 1.0105x slower cmpeq-obj-to-obj-other 11.4972+-0.9663 ? 11.8498+-0.9773 ? might be 1.0307x slower constant-test 4.9467+-0.0332 ? 5.1197+-0.3400 ? might be 1.0350x slower create-lots-of-functions 11.8760+-0.3358 11.7226+-0.4166 might be 1.0131x faster DataView-custom-properties 38.6459+-2.4500 ? 43.0361+-11.5513 ? might be 1.1136x slower deconstructing-parameters-overridden-by-function 0.4847+-0.0153 ? 0.5122+-0.0591 ? might be 1.0568x slower delay-tear-off-arguments-strictmode 13.9255+-0.2830 ? 14.4712+-0.9842 ? might be 1.0392x slower deltablue-varargs 202.3660+-4.4151 201.3988+-1.7813 destructuring-arguments 17.9991+-0.2734 ? 18.1127+-0.6722 ? destructuring-swap 5.1476+-0.1274 5.0725+-0.0693 might be 1.0148x faster direct-arguments-getbyval 1.1880+-0.0455 ? 1.3286+-0.2541 ? might be 1.1184x slower div-boolean-double 5.2109+-0.0196 5.2099+-0.0416 div-boolean 7.8565+-0.1031 7.8395+-0.1848 double-get-by-val-out-of-bounds 4.7616+-0.3240 4.6103+-0.1077 might be 1.0328x faster double-pollution-getbyval 8.8204+-0.0555 ? 8.9080+-0.1094 ? double-pollution-putbyoffset 4.4505+-0.2939 4.3272+-0.1393 might be 1.0285x faster double-to-int32-typed-array-no-inline 2.2884+-0.0680 ? 2.3346+-0.1510 ? might be 1.0202x slower double-to-int32-typed-array 1.9030+-0.1340 1.8853+-0.0265 double-to-uint32-typed-array-no-inline 2.3720+-0.1044 2.3204+-0.0858 might be 1.0222x faster double-to-uint32-typed-array 2.0135+-0.0995 ? 2.1860+-0.2923 ? might be 1.0857x slower elidable-new-object-dag 43.9347+-1.2466 ? 45.0214+-1.0428 ? might be 1.0247x slower elidable-new-object-roflcopter 46.9397+-1.7342 46.4719+-1.5962 might be 1.0101x faster elidable-new-object-then-call 40.3896+-2.5322 39.5664+-1.6921 might be 1.0208x faster elidable-new-object-tree 46.1445+-1.1312 45.7276+-1.3513 empty-string-plus-int 5.4235+-0.0891 ? 5.4489+-0.1078 ? emscripten-cube2hash 39.0290+-0.6292 38.2794+-1.3493 might be 1.0196x faster exit-length-on-plain-object 14.2246+-0.4898 ? 14.2627+-1.1455 ? external-arguments-getbyval 1.2017+-0.0482 ? 1.2048+-0.0828 ? external-arguments-putbyval 2.3820+-0.2210 2.3343+-0.0830 might be 1.0204x faster fixed-typed-array-storage-var-index 1.1840+-0.0284 ? 1.2260+-0.0500 ? might be 1.0355x slower fixed-typed-array-storage 0.9203+-0.0296 ? 0.9364+-0.0473 ? might be 1.0176x slower Float32Array-matrix-mult 4.6278+-0.1766 4.4976+-0.1987 might be 1.0290x faster Float32Array-to-Float64Array-set 54.9849+-2.0625 52.9318+-2.1678 might be 1.0388x faster Float64Array-alloc-long-lived 74.4717+-1.7357 74.1218+-1.7699 Float64Array-to-Int16Array-set 70.8234+-0.9020 68.9178+-1.7952 might be 1.0277x faster fold-double-to-int 13.4824+-0.3441 ? 13.5234+-0.2073 ? fold-get-by-id-to-multi-get-by-offset-rare-int 10.8145+-0.9158 ? 10.9875+-1.7530 ? might be 1.0160x slower fold-get-by-id-to-multi-get-by-offset 10.4703+-0.9141 9.9562+-0.6480 might be 1.0516x faster fold-multi-get-by-offset-to-get-by-offset 9.6538+-0.9802 9.3356+-0.9043 might be 1.0341x faster fold-multi-get-by-offset-to-poly-get-by-offset 9.4618+-1.1665 9.1536+-0.8509 might be 1.0337x faster fold-multi-put-by-offset-to-poly-put-by-offset 8.0766+-1.8154 ? 8.1603+-2.0506 ? might be 1.0104x slower fold-multi-put-by-offset-to-put-by-offset 4.9979+-0.3844 ? 6.0584+-1.0555 ? might be 1.2122x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.9265+-0.5881 9.4904+-0.3691 might be 1.0459x faster fold-put-by-id-to-multi-put-by-offset 9.7052+-1.3129 ? 10.6948+-2.3605 ? might be 1.1020x slower fold-put-structure 5.2018+-1.3240 ? 5.2837+-0.7865 ? might be 1.0157x slower for-of-iterate-array-entries 4.7422+-0.3224 ? 4.7495+-0.1511 ? for-of-iterate-array-keys 3.8935+-0.2601 ? 3.9462+-0.3051 ? might be 1.0135x slower for-of-iterate-array-values 3.8407+-0.4328 3.7636+-0.1787 might be 1.0205x faster fround 20.9087+-0.8683 ? 21.2120+-0.6869 ? might be 1.0145x slower ftl-library-inlining-dataview 70.9073+-2.1370 ? 75.6340+-3.9097 ? might be 1.0667x slower ftl-library-inlining 68.2472+-5.8347 ? 73.1604+-17.2495 ? might be 1.0720x slower function-dot-apply 2.2190+-0.0903 ? 2.2461+-0.1111 ? might be 1.0122x slower function-test 3.3764+-0.0502 3.3555+-0.0441 function-with-eval 103.8232+-1.6769 ? 107.6781+-3.4381 ? might be 1.0371x slower gcse-poly-get-less-obvious 19.3468+-1.5737 18.8837+-0.4572 might be 1.0245x faster gcse-poly-get 23.8755+-2.3392 20.9290+-1.3896 might be 1.1408x faster gcse 4.3862+-0.1743 ? 4.5142+-0.3840 ? might be 1.0292x slower get-by-id-bimorphic-check-structure-elimination-simple 2.8381+-0.3450 2.7202+-0.0270 might be 1.0433x faster get-by-id-bimorphic-check-structure-elimination 6.1273+-0.2016 ? 6.4647+-0.8681 ? might be 1.0551x slower get-by-id-chain-from-try-block 6.8701+-0.5861 ? 7.0145+-1.0968 ? might be 1.0210x slower get-by-id-check-structure-elimination 5.2145+-0.1571 5.1291+-0.1123 might be 1.0167x faster get-by-id-proto-or-self 16.9018+-0.3993 ? 17.0398+-0.7763 ? get-by-id-quadmorphic-check-structure-elimination-simple 3.1590+-0.0409 ? 3.1592+-0.0752 ? get-by-id-self-or-proto 17.4526+-0.6151 ? 17.5573+-0.4369 ? get-by-val-out-of-bounds 4.3864+-0.0987 ? 4.4825+-0.1771 ? might be 1.0219x slower get_callee_monomorphic 2.8551+-0.0287 2.8525+-0.0626 get_callee_polymorphic 3.9913+-0.3747 3.9897+-0.3701 getter-no-activation 5.1497+-0.2868 ? 5.1563+-0.3623 ? getter-richards 128.4798+-5.5793 125.1778+-8.5036 might be 1.0264x faster getter 5.5380+-0.5822 5.2870+-0.0816 might be 1.0475x faster global-var-const-infer-fire-from-opt 0.9585+-0.0880 ? 0.9976+-0.1074 ? might be 1.0409x slower global-var-const-infer 0.8036+-0.1625 0.7875+-0.0897 might be 1.0204x faster HashMap-put-get-iterate-keys 25.8281+-0.3680 25.5144+-0.3283 might be 1.0123x faster HashMap-put-get-iterate 25.8216+-0.6348 ? 26.1025+-0.8089 ? might be 1.0109x slower HashMap-string-put-get-iterate 27.5682+-1.2896 ? 27.7568+-0.9607 ? hoist-make-rope 12.5433+-0.9591 12.0017+-0.9200 might be 1.0451x faster hoist-poly-check-structure-effectful-loop 5.0051+-0.0302 4.9889+-0.0800 hoist-poly-check-structure 3.7888+-0.2620 3.7878+-0.3036 imul-double-only 9.0203+-0.2175 8.9681+-0.0967 imul-int-only 10.0196+-1.0350 9.8348+-0.1542 might be 1.0188x faster imul-mixed 8.8040+-0.5540 8.1346+-0.7197 might be 1.0823x faster in-four-cases 20.8022+-0.3605 20.7765+-0.3384 in-one-case-false 10.0623+-0.4273 ? 10.1017+-0.4241 ? in-one-case-true 10.3684+-0.7062 ? 10.4381+-0.8373 ? in-two-cases 10.5227+-0.5210 ? 10.6548+-0.4627 ? might be 1.0125x slower indexed-properties-in-objects 3.1468+-0.2926 2.9322+-0.0735 might be 1.0732x faster infer-closure-const-then-mov-no-inline 4.1066+-0.5415 3.9011+-0.0490 might be 1.0527x faster infer-closure-const-then-mov 20.0209+-0.4314 19.7923+-0.2651 might be 1.0115x faster infer-closure-const-then-put-to-scope-no-inline 14.7142+-1.5015 14.1711+-0.2605 might be 1.0383x faster infer-closure-const-then-put-to-scope 24.3993+-1.7550 22.7433+-0.3291 might be 1.0728x faster infer-closure-const-then-reenter-no-inline 62.0204+-0.6946 ? 63.8149+-3.2131 ? might be 1.0289x slower infer-closure-const-then-reenter 24.2881+-1.9825 22.6379+-1.1500 might be 1.0729x faster infer-constant-global-property 31.7634+-2.0068 30.6290+-1.8043 might be 1.0370x faster infer-constant-property 2.7424+-0.1451 2.6933+-0.0405 might be 1.0182x faster infer-one-time-closure-ten-vars 12.6663+-0.8497 ? 12.8798+-1.7744 ? might be 1.0169x slower infer-one-time-closure-two-vars 12.7852+-0.9268 12.1309+-0.2812 might be 1.0539x faster infer-one-time-closure 12.1813+-0.2177 ? 12.5691+-0.8221 ? might be 1.0318x slower infer-one-time-deep-closure 21.4611+-1.4856 ? 21.7780+-1.8407 ? might be 1.0148x slower inline-arguments-access 4.7032+-0.1891 4.6945+-0.1278 inline-arguments-aliased-access 4.6884+-0.1585 4.6560+-0.0713 inline-arguments-local-escape 4.6879+-0.2062 ? 5.0073+-0.4371 ? might be 1.0681x slower inline-get-scoped-var 4.8397+-0.2344 4.8105+-0.1567 inlined-put-by-id-transition 11.5747+-0.4792 ? 11.8219+-0.6791 ? might be 1.0214x slower int-or-other-abs-then-get-by-val 4.7325+-0.1123 ? 4.7459+-0.1350 ? int-or-other-abs-zero-then-get-by-val 18.0419+-1.6808 17.7602+-1.2442 might be 1.0159x faster int-or-other-add-then-get-by-val 4.2987+-0.1367 4.2637+-0.1247 int-or-other-add 5.3776+-0.1156 5.2940+-0.0385 might be 1.0158x faster int-or-other-div-then-get-by-val 4.4419+-0.2560 4.3608+-0.2073 might be 1.0186x faster int-or-other-max-then-get-by-val 4.4617+-0.3489 ? 4.5244+-0.4704 ? might be 1.0141x slower int-or-other-min-then-get-by-val 4.3472+-0.0565 ? 4.3489+-0.0359 ? int-or-other-mod-then-get-by-val 3.9375+-0.0471 ? 4.0462+-0.3314 ? might be 1.0276x slower int-or-other-mul-then-get-by-val 4.0022+-0.1286 3.9799+-0.0497 int-or-other-neg-then-get-by-val 4.4675+-0.0295 ? 4.5227+-0.1101 ? might be 1.0124x slower int-or-other-neg-zero-then-get-by-val 17.1338+-0.8893 ? 17.4510+-0.5830 ? might be 1.0185x slower int-or-other-sub-then-get-by-val 4.6231+-0.1877 4.6073+-0.1823 int-or-other-sub 3.5216+-0.1098 3.5027+-0.0668 int-overflow-local 4.6921+-0.3901 4.6120+-0.1922 might be 1.0174x faster Int16Array-alloc-long-lived 53.7392+-1.8850 ? 54.4996+-1.3866 ? might be 1.0142x slower Int16Array-bubble-sort-with-byteLength 20.5927+-0.6093 ? 20.7932+-0.8476 ? Int16Array-bubble-sort 20.0695+-0.6877 19.8360+-0.4930 might be 1.0118x faster Int16Array-load-int-mul 1.5050+-0.0788 ? 1.5509+-0.0862 ? might be 1.0305x slower Int16Array-to-Int32Array-set 61.9548+-2.4041 58.1052+-1.9099 might be 1.0663x faster Int32Array-alloc-large 24.4725+-0.9827 24.1066+-0.3357 might be 1.0152x faster Int32Array-alloc-long-lived 57.5936+-1.2319 ? 58.2113+-2.1739 ? might be 1.0107x slower Int32Array-alloc 3.6345+-0.1338 ? 3.7371+-0.5404 ? might be 1.0282x slower Int32Array-Int8Array-view-alloc 7.3162+-1.1495 ? 7.3319+-1.1637 ? int52-spill 6.3260+-0.1092 ? 6.5047+-0.4289 ? might be 1.0282x slower Int8Array-alloc-long-lived 48.1070+-1.5969 47.2887+-1.4996 might be 1.0173x faster Int8Array-load-with-byteLength 3.4161+-0.3352 ? 3.4886+-0.4271 ? might be 1.0212x slower Int8Array-load 3.3034+-0.0434 ? 3.6947+-0.4725 ? might be 1.1184x slower integer-divide 11.1332+-0.1493 ? 13.0127+-4.1950 ? might be 1.1688x slower integer-modulo 1.9992+-0.0466 ? 2.1167+-0.2469 ? might be 1.0588x slower is-boolean-fold-tricky 5.3254+-0.1103 ^ 4.4845+-0.2330 ^ definitely 1.1875x faster is-boolean-fold 2.8415+-0.0277 ? 3.0622+-0.3728 ? might be 1.0777x slower is-function-fold-tricky-internal-function 15.2441+-0.5253 11.9410+-3.6012 might be 1.2766x faster is-function-fold-tricky 16.2594+-2.4491 ^ 4.5770+-0.1619 ^ definitely 3.5524x faster is-function-fold 12.5079+-0.1675 ^ 2.8848+-0.0402 ^ definitely 4.3359x faster is-number-fold-tricky 5.1844+-0.1885 ^ 4.4674+-0.1355 ^ definitely 1.1605x faster is-number-fold 2.9054+-0.1235 2.8795+-0.0305 is-object-or-null-fold-functions 18.8031+-0.2281 ^ 2.9311+-0.0453 ^ definitely 6.4151x faster is-object-or-null-fold-less-tricky 16.6032+-0.2791 ^ 4.9160+-0.5560 ^ definitely 3.3774x faster is-object-or-null-fold-tricky 14.6773+-0.5991 ^ 10.2738+-0.1510 ^ definitely 1.4286x faster is-object-or-null-fold 10.4629+-0.1587 ^ 2.8806+-0.0421 ^ definitely 3.6322x faster is-object-or-null-trickier-function 21.3890+-2.3949 ^ 4.7566+-0.4651 ^ definitely 4.4967x faster is-object-or-null-trickier-internal-function 31.5799+-0.5380 ^ 12.2450+-0.1646 ^ definitely 2.5790x faster is-object-or-null-tricky-function 18.6182+-0.2800 ^ 4.7802+-0.5477 ^ definitely 3.8949x faster is-object-or-null-tricky-internal-function 18.6525+-0.3458 ^ 11.2524+-0.8940 ^ definitely 1.6577x faster is-string-fold-tricky 5.1039+-0.0668 ^ 4.4264+-0.0747 ^ definitely 1.1531x faster is-string-fold 2.8575+-0.1055 ? 2.8850+-0.1186 ? is-undefined-fold-tricky 5.1275+-0.1105 ^ 3.7208+-0.0757 ^ definitely 1.3781x faster is-undefined-fold 2.8188+-0.0120 ? 2.8588+-0.0433 ? might be 1.0142x slower large-int-captured 4.6454+-0.1038 4.6146+-0.0457 large-int-neg 16.9751+-0.8886 16.2770+-0.2843 might be 1.0429x faster large-int 15.6923+-1.0037 14.8199+-0.2996 might be 1.0589x faster logical-not 4.4917+-0.0485 ? 4.6403+-0.3471 ? might be 1.0331x slower lots-of-fields 13.1913+-0.3255 ? 13.2432+-1.3816 ? make-indexed-storage 3.2306+-0.2434 3.1528+-0.0420 might be 1.0247x faster make-rope-cse 4.7127+-0.0523 ? 5.1588+-0.4929 ? might be 1.0947x slower marsaglia-larger-ints 36.8829+-1.0653 36.7664+-1.6635 marsaglia-osr-entry 23.9945+-1.6797 ? 24.2979+-1.8659 ? might be 1.0126x slower max-boolean 2.6837+-0.2960 ? 2.7535+-0.4027 ? might be 1.0260x slower method-on-number 17.6158+-1.4936 17.3346+-0.9374 might be 1.0162x faster min-boolean 2.6106+-0.3014 2.5965+-0.2698 minus-boolean-double 3.1605+-0.0757 ? 3.2035+-0.1225 ? might be 1.0136x slower minus-boolean 2.3108+-0.0523 ? 2.3136+-0.0432 ? misc-strict-eq 37.6885+-0.4912 ? 39.0426+-3.0718 ? might be 1.0359x slower mod-boolean-double 10.9871+-0.2617 ? 11.5501+-1.4258 ? might be 1.0512x slower mod-boolean 8.0769+-0.3018 7.8550+-0.0971 might be 1.0282x faster mul-boolean-double 3.7809+-0.1535 ? 3.8528+-0.3510 ? might be 1.0190x slower mul-boolean 2.9122+-0.0474 ? 3.0124+-0.3611 ? might be 1.0344x slower neg-boolean 3.2286+-0.1270 3.1429+-0.0143 might be 1.0273x faster negative-zero-divide 0.3510+-0.0284 ? 0.3739+-0.0735 ? might be 1.0652x slower negative-zero-modulo 0.3623+-0.0298 ? 0.3695+-0.0537 ? might be 1.0198x slower negative-zero-negate 0.3493+-0.0443 0.3444+-0.0308 might be 1.0143x faster nested-function-parsing 38.9496+-0.6625 ? 39.5966+-1.8867 ? might be 1.0166x slower new-array-buffer-dead 113.4202+-2.7946 112.5261+-3.2346 new-array-buffer-push 7.0386+-0.4097 ? 7.5841+-1.0423 ? might be 1.0775x slower new-array-dead 19.4706+-0.3007 ? 19.6048+-0.5205 ? new-array-push 4.1698+-0.4449 4.0487+-0.2515 might be 1.0299x faster no-inline-constructor 127.5508+-2.0751 ? 132.9125+-7.1980 ? might be 1.0420x slower number-test 3.1493+-0.3174 3.0531+-0.0944 might be 1.0315x faster object-closure-call 5.5728+-0.0536 ? 5.6597+-0.1439 ? might be 1.0156x slower object-test 3.1213+-0.0474 ? 3.1589+-0.0663 ? might be 1.0120x slower obvious-sink-pathology-taken 139.8889+-2.9859 ? 139.9379+-3.8448 ? obvious-sink-pathology 131.5461+-2.5137 130.6448+-1.9774 obviously-elidable-new-object 35.5238+-0.9458 ? 35.7701+-1.1617 ? plus-boolean-arith 2.6013+-0.3267 ? 2.6067+-0.2130 ? plus-boolean-double 3.2231+-0.1366 ? 3.3150+-0.4066 ? might be 1.0285x slower plus-boolean 2.3724+-0.0516 ? 2.5158+-0.2942 ? might be 1.0605x slower poly-chain-access-different-prototypes-simple 3.2810+-0.0423 3.2753+-0.0382 poly-chain-access-different-prototypes 2.7953+-0.3338 2.7623+-0.3150 might be 1.0120x faster poly-chain-access-simpler 3.3210+-0.0482 ? 3.3302+-0.1086 ? poly-chain-access 2.6801+-0.3106 ? 2.6832+-0.3573 ? poly-stricteq 62.6142+-0.7110 ? 63.0232+-1.6454 ? polymorphic-array-call 1.2470+-0.0678 ? 1.2670+-0.1422 ? might be 1.0160x slower polymorphic-get-by-id 3.0627+-0.0106 ? 3.1496+-0.1146 ? might be 1.0284x slower polymorphic-put-by-id 29.7663+-1.8799 ? 30.2827+-2.4614 ? might be 1.0173x slower polymorphic-structure 14.8317+-0.2456 ? 15.3431+-1.4701 ? might be 1.0345x slower polyvariant-monomorphic-get-by-id 8.4925+-0.1342 ? 8.6759+-0.2780 ? might be 1.0216x slower proto-getter-access 10.0197+-0.2692 9.8596+-0.1270 might be 1.0162x faster put-by-id-replace-and-transition 9.0693+-0.1742 ? 9.3987+-0.4029 ? might be 1.0363x slower put-by-id-slightly-polymorphic 2.9847+-0.3461 2.8353+-0.0921 might be 1.0527x faster put-by-id 12.5900+-0.2189 ? 12.8452+-0.7343 ? might be 1.0203x slower put-by-val-direct 0.4535+-0.0147 ? 0.4564+-0.0434 ? put-by-val-large-index-blank-indexing-type 6.1099+-0.4299 ? 6.2212+-0.7840 ? might be 1.0182x slower put-by-val-machine-int 2.7474+-0.0535 ? 2.8089+-0.1045 ? might be 1.0224x slower rare-osr-exit-on-local 15.0739+-0.7923 ? 15.3748+-0.6131 ? might be 1.0200x slower register-pressure-from-osr 21.7426+-0.9407 ? 22.2926+-1.0330 ? might be 1.0253x slower setter 5.2087+-0.0346 ? 5.9162+-0.7676 ? might be 1.1358x slower simple-activation-demo 25.0866+-0.5542 ? 25.4041+-0.7005 ? might be 1.0127x slower simple-getter-access 12.9369+-0.2851 12.7710+-0.2335 might be 1.0130x faster simple-poly-call-nested 8.3642+-0.1590 ? 8.3660+-0.7276 ? simple-poly-call 1.3731+-0.1653 1.2997+-0.0231 might be 1.0564x faster sin-boolean 22.0888+-1.7627 ? 23.2227+-1.3773 ? might be 1.0513x slower singleton-scope 68.1133+-2.6654 ? 68.3182+-1.7892 ? sink-function 12.3454+-0.4233 ? 12.4138+-0.3970 ? sinkable-new-object-dag 71.5422+-2.7663 70.3277+-0.9832 might be 1.0173x faster sinkable-new-object-taken 51.0653+-2.0103 ? 52.2318+-2.2021 ? might be 1.0228x slower sinkable-new-object 38.7879+-1.3308 38.0119+-0.8948 might be 1.0204x faster slow-array-profile-convergence 2.8068+-0.2177 ? 2.8963+-0.3720 ? might be 1.0319x slower slow-convergence 3.0997+-0.7265 2.6854+-0.1173 might be 1.1543x faster sorting-benchmark 21.0481+-0.3171 ? 21.1734+-1.3632 ? sparse-conditional 1.1396+-0.0661 1.1111+-0.0314 might be 1.0256x faster splice-to-remove 19.3599+-5.6715 17.3307+-1.3943 might be 1.1171x faster string-char-code-at 17.1925+-0.8202 ? 17.3648+-0.6923 ? might be 1.0100x slower string-concat-object 2.6449+-0.3336 2.5447+-0.1113 might be 1.0394x faster string-concat-pair-object 2.5611+-0.1124 2.4989+-0.1287 might be 1.0249x faster string-concat-pair-simple 12.1210+-0.6257 11.5645+-0.3517 might be 1.0481x faster string-concat-simple 12.1548+-0.3215 ? 13.2000+-1.2656 ? might be 1.0860x slower string-cons-repeat 8.6606+-0.7869 ? 9.0474+-1.2839 ? might be 1.0447x slower string-cons-tower 8.8308+-1.3643 8.7208+-0.6768 might be 1.0126x faster string-equality 17.2805+-0.2012 ? 17.9952+-0.8864 ? might be 1.0414x slower string-get-by-val-big-char 7.1317+-0.0413 ? 7.1510+-0.0830 ? string-get-by-val-out-of-bounds-insane 3.6396+-0.0694 ? 3.6996+-0.3935 ? might be 1.0165x slower string-get-by-val-out-of-bounds 5.4450+-0.4571 ? 5.5499+-0.5893 ? might be 1.0193x slower string-get-by-val 3.3460+-0.2189 3.2503+-0.0548 might be 1.0295x faster string-hash 2.0713+-0.0826 2.0677+-0.0906 string-long-ident-equality 14.8522+-0.1387 ? 15.3895+-1.2405 ? might be 1.0362x slower string-out-of-bounds 15.0181+-0.2470 14.7878+-0.1805 might be 1.0156x faster string-repeat-arith 35.0349+-1.8949 34.2918+-3.1736 might be 1.0217x faster string-sub 67.2918+-1.5786 ? 69.9045+-2.2325 ? might be 1.0388x slower string-test 2.9464+-0.0811 2.9163+-0.0629 might be 1.0103x faster string-var-equality 31.0881+-1.7767 ? 31.0886+-1.7123 ? structure-hoist-over-transitions 2.6212+-0.1064 2.6111+-0.0352 substring-concat-weird 41.0883+-1.6963 40.9155+-2.1529 substring-concat 42.2189+-1.8803 41.3888+-1.4836 might be 1.0201x faster substring 50.8811+-11.8398 46.7756+-2.4094 might be 1.0878x faster switch-char-constant 2.9069+-0.3947 2.8508+-0.2873 might be 1.0197x faster switch-char 6.3633+-0.4313 ? 7.1713+-1.1663 ? might be 1.1270x slower switch-constant 8.4736+-0.2512 8.4186+-0.1651 switch-string-basic-big-var 17.9438+-0.2023 ? 18.0757+-0.4195 ? switch-string-basic-big 14.5613+-0.2968 14.3669+-0.2037 might be 1.0135x faster switch-string-basic-var 14.7063+-0.3132 14.5467+-0.1882 might be 1.0110x faster switch-string-basic 13.6425+-0.1949 ? 13.9233+-0.8417 ? might be 1.0206x slower switch-string-big-length-tower-var 21.0173+-1.2625 19.9904+-0.3106 might be 1.0514x faster switch-string-length-tower-var 15.0854+-0.2331 15.0344+-0.2002 switch-string-length-tower 12.9213+-0.2369 ? 12.9533+-0.2459 ? switch-string-short 12.9173+-0.1752 ? 13.1503+-0.7745 ? might be 1.0180x slower switch 12.8895+-0.4363 12.7389+-0.2431 might be 1.0118x faster tear-off-arguments-simple 3.5260+-0.1324 ? 3.6181+-0.3585 ? might be 1.0261x slower tear-off-arguments 4.7555+-0.1425 4.7000+-0.0655 might be 1.0118x faster temporal-structure 12.2438+-0.1357 ? 12.7726+-0.7764 ? might be 1.0432x slower to-int32-boolean 13.6422+-0.2302 ? 13.7109+-0.2328 ? try-catch-get-by-val-cloned-arguments 14.2351+-0.3125 ? 14.9941+-1.2235 ? might be 1.0533x slower try-catch-get-by-val-direct-arguments 7.0021+-0.9508 6.7189+-0.4487 might be 1.0422x faster try-catch-get-by-val-scoped-arguments 8.1255+-1.2016 7.6999+-0.0669 might be 1.0553x faster typed-array-get-set-by-val-profiling 32.9836+-1.8624 32.2769+-1.3573 might be 1.0219x faster undefined-property-access 356.0950+-4.0361 ? 357.7859+-4.8363 ? undefined-test 2.9857+-0.0304 ? 3.1329+-0.3297 ? might be 1.0493x slower unprofiled-licm 22.7273+-0.4916 ? 23.2182+-1.3617 ? might be 1.0216x slower varargs-call 16.2501+-0.9024 ? 17.1578+-1.6560 ? might be 1.0559x slower varargs-construct-inline 23.6442+-1.2437 ? 23.6948+-1.2821 ? varargs-construct 32.4065+-1.1448 32.0650+-0.6574 might be 1.0106x faster varargs-inline 9.4469+-0.2503 9.4359+-0.3915 varargs-strict-mode 10.7025+-0.5020 10.4381+-0.3853 might be 1.0253x faster varargs 10.4140+-0.3348 10.3570+-0.3704 weird-inlining-const-prop 2.4380+-0.1603 2.4024+-0.1703 might be 1.0148x faster <geometric> 8.9439+-0.0364 ^ 8.6154+-0.0321 ^ definitely 1.0381x faster TipOfTree FoldIsBlah AsmBench: bigfib.cpp 494.9396+-3.0249 ? 496.1057+-3.0249 ? cray.c 426.6335+-3.8815 426.4317+-2.9753 dry.c 483.3765+-11.3398 ? 487.5221+-6.9016 ? FloatMM.c 726.2237+-4.8028 ? 726.6427+-3.9020 ? gcc-loops.cpp 4278.7570+-10.0808 ? 4287.4281+-30.6797 ? n-body.c 986.5729+-20.9032 986.2310+-6.4806 Quicksort.c 418.2278+-4.3793 ? 423.6383+-5.5653 ? might be 1.0129x slower stepanov_container.cpp 3613.3713+-19.0866 ? 3625.7378+-26.7286 ? Towers.c 260.1858+-1.5542 ? 260.7797+-3.3409 ? <geometric> 792.2613+-2.6007 ? 795.0406+-4.8638 ? might be 1.0035x slower TipOfTree FoldIsBlah CompressionBench: huffman 365.5846+-1.6193 365.0130+-1.0424 arithmetic-simple 399.3677+-4.4459 396.8178+-3.5564 arithmetic-precise 300.6885+-4.0480 ? 302.8547+-3.5969 ? arithmetic-complex-precise 301.8206+-4.2207 300.8603+-5.0576 arithmetic-precise-order-0 430.4602+-8.6024 422.7170+-8.8515 might be 1.0183x faster arithmetic-precise-order-1 331.5404+-5.9680 327.1903+-3.7770 might be 1.0133x faster arithmetic-precise-order-2 363.9191+-10.8945 360.1700+-4.5883 might be 1.0104x faster arithmetic-simple-order-1 429.9393+-6.9327 423.8622+-2.6469 might be 1.0143x faster arithmetic-simple-order-2 478.3743+-17.1646 ? 478.5802+-12.7627 ? lz-string 328.2728+-7.3738 326.4020+-3.4708 <geometric> 368.6826+-2.8366 366.3101+-1.9391 might be 1.0065x faster TipOfTree FoldIsBlah Geomean of preferred means: <scaled-result> 64.5559+-0.1593 64.4738+-0.6063 might be 1.0013x faster
Geoffrey Garen
Comment 3 2015-04-30 10:16:21 PDT
Comment on attachment 252024 [details] the patch r=me
Filip Pizlo
Comment 4 2015-04-30 10:38:05 PDT
Csaba Osztrogonác
Comment 5 2015-04-30 13:46:59 PDT
(In reply to comment #4) > Landed in http://trac.webkit.org/changeset/183629 The followinf new tests assert on Apple Debug bots: regress/script-tests/is-string-fold-tricky.js regress/script-tests/is-string-fold.js
Filip Pizlo
Comment 6 2015-04-30 13:54:07 PDT
(In reply to comment #5) > (In reply to comment #4) > > Landed in http://trac.webkit.org/changeset/183629 > > The followinf new tests assert on Apple Debug bots: > regress/script-tests/is-string-fold-tricky.js > regress/script-tests/is-string-fold.js Yup. The new tests revealed a preexisting bug. I'm skipping them, and I'm looking into the issue. I'll probably fix and unskip soon.
Filip Pizlo
Comment 7 2015-04-30 13:57:00 PDT
Note You need to log in before you can comment on or make changes to this bug.