Patch forthcoming.
Created attachment 254211 [details] work in progress
This is a speed-up on small benchmarks, but it hurts on larger codebases. We sort of slowly discover that things that usually loaded double might also load integers. That sucks.
Created attachment 254243 [details] the fully speculative approach It's not a speed-up. 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 (r185168) "DoubleRealUse" at /Volumes/Data/pizlo/primary/OpenSource/WebKitBuild/Release/jsc (r185168) 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 DoubleRealUse SunSpider: 3d-cube 5.2075+-0.0833 ? 5.3324+-0.1867 ? might be 1.0240x slower 3d-morph 6.1673+-0.3740 5.8788+-0.1221 might be 1.0491x faster 3d-raytrace 6.5563+-0.0789 6.4498+-0.0731 might be 1.0165x faster access-binary-trees 2.4699+-0.2710 ? 2.5842+-0.3809 ? might be 1.0463x slower access-fannkuch 6.1806+-0.1458 6.1668+-0.0737 access-nbody 3.1104+-0.0510 3.0740+-0.3740 might be 1.0118x faster access-nsieve 3.5695+-0.2341 3.3698+-0.0740 might be 1.0592x faster bitops-3bit-bits-in-byte 1.6565+-0.0785 ? 1.6637+-0.0660 ? bitops-bits-in-byte 4.0986+-0.2763 4.0587+-0.3927 bitops-bitwise-and 2.1854+-0.0838 2.1850+-0.0748 bitops-nsieve-bits 3.2852+-0.0727 ? 3.3074+-0.1230 ? controlflow-recursive 3.0378+-0.1247 3.0242+-0.0948 crypto-aes 4.7883+-0.2016 ? 4.8606+-0.2916 ? might be 1.0151x slower crypto-md5 3.2500+-0.2745 ? 3.2623+-0.4295 ? crypto-sha1 3.8812+-0.3857 3.7139+-0.2853 might be 1.0450x faster date-format-tofte 9.3881+-0.3306 ? 9.4261+-0.1504 ? date-format-xparb 5.8167+-0.1341 ? 6.0332+-0.2083 ? might be 1.0372x slower math-cordic 3.2987+-0.2547 3.2331+-0.1280 might be 1.0203x faster math-partial-sums 5.7467+-0.8611 ? 5.8330+-1.0082 ? might be 1.0150x slower math-spectral-norm 2.0642+-0.0330 ? 2.1838+-0.1491 ? might be 1.0579x slower regexp-dna 8.6687+-1.6371 8.6411+-1.5925 string-base64 5.0812+-0.2293 ? 5.1669+-0.1582 ? might be 1.0169x slower string-fasta 7.4731+-1.0590 6.6886+-0.0766 might be 1.1173x faster string-tagcloud 10.2870+-1.0441 10.1497+-0.4703 might be 1.0135x faster string-unpack-code 21.3035+-0.8507 20.7372+-0.6711 might be 1.0273x faster string-validate-input 6.0163+-0.1456 5.9932+-0.2005 <arithmetic> 5.5611+-0.1496 5.5007+-0.0727 might be 1.0110x faster TipOfTree DoubleRealUse LongSpider: 3d-cube 902.2222+-7.6102 895.4152+-5.1156 3d-morph 1542.4805+-25.7183 1528.7774+-2.8184 3d-raytrace 696.4887+-3.9326 ? 725.1276+-37.4852 ? might be 1.0411x slower access-binary-trees 1002.5318+-7.2856 ? 1004.8466+-8.3921 ? access-fannkuch 332.7771+-7.6106 ? 339.3682+-16.9684 ? might be 1.0198x slower access-nbody 667.3458+-80.2716 607.5635+-26.6574 might be 1.0984x faster access-nsieve 478.9073+-6.4017 ? 480.7949+-6.8700 ? bitops-3bit-bits-in-byte 45.7203+-2.2841 45.2336+-1.0784 might be 1.0108x faster bitops-bits-in-byte 99.7555+-1.0750 ? 100.5952+-6.1329 ? bitops-nsieve-bits 423.4315+-4.3478 421.3146+-2.6293 controlflow-recursive 491.8769+-11.4132 486.4794+-13.3929 might be 1.0111x faster crypto-aes 705.0099+-7.8571 ? 709.0625+-8.0707 ? crypto-md5 517.1257+-7.5386 ! 545.3444+-19.6261 ! definitely 1.0546x slower crypto-sha1 607.4552+-4.2406 599.2410+-4.6065 might be 1.0137x faster date-format-tofte 770.1103+-61.8561 745.5965+-14.6196 might be 1.0329x faster date-format-xparb 812.3102+-18.3401 803.2241+-16.6033 might be 1.0113x faster hash-map 184.2764+-2.0028 ? 184.8893+-4.9793 ? math-cordic 590.9546+-4.5418 ^ 579.3164+-4.5807 ^ definitely 1.0201x faster math-partial-sums 510.2572+-9.0965 ? 513.2317+-15.0406 ? math-spectral-norm 575.7033+-26.2633 566.6305+-2.3492 might be 1.0160x faster string-base64 415.4858+-7.9618 415.1095+-13.2360 string-fasta 430.0212+-4.2098 ^ 422.5883+-2.9173 ^ definitely 1.0176x faster string-tagcloud 198.2579+-5.7287 194.8677+-2.9214 might be 1.0174x faster <geometric> 457.2412+-2.8887 454.8856+-3.3251 might be 1.0052x faster TipOfTree DoubleRealUse V8Spider: crypto 57.5230+-3.3151 55.8582+-2.2353 might be 1.0298x faster deltablue 99.6683+-2.8588 ? 103.4340+-4.3219 ? might be 1.0378x slower earley-boyer 50.1773+-2.4286 48.4775+-2.6288 might be 1.0351x faster raytrace 42.7799+-2.9050 41.6053+-2.1656 might be 1.0282x faster regexp 83.7779+-2.0596 ? 85.2198+-2.3967 ? might be 1.0172x slower richards 86.1364+-9.4491 78.6632+-1.8901 might be 1.0950x faster splay 38.9261+-2.6066 ? 38.9561+-2.8811 ? <geometric> 61.7590+-1.5058 60.6784+-1.2904 might be 1.0178x faster TipOfTree DoubleRealUse Octane: encrypt 0.20342+-0.00187 ? 0.20669+-0.00742 ? might be 1.0161x slower decrypt 3.59392+-0.04761 ? 3.61798+-0.16179 ? deltablue x2 0.19611+-0.00159 0.19557+-0.00139 earley 0.39254+-0.00559 ? 0.39506+-0.00622 ? boyer 5.18598+-0.05464 5.14634+-0.05711 navier-stokes x2 5.19834+-0.04226 ? 5.29325+-0.20832 ? might be 1.0183x slower raytrace x2 1.28006+-0.05758 1.26084+-0.05403 might be 1.0152x faster richards x2 0.13058+-0.00830 ? 0.13404+-0.01589 ? might be 1.0265x slower splay x2 0.40027+-0.00264 ? 0.40176+-0.00467 ? regexp x2 31.67856+-0.25548 31.66756+-0.19514 pdfjs x2 43.55866+-1.82793 42.77513+-0.39407 might be 1.0183x faster mandreel x2 50.56241+-0.60535 50.29173+-0.17694 gbemu x2 43.03807+-0.98079 42.18216+-0.60149 might be 1.0203x faster closure 0.59586+-0.00434 ^ 0.57045+-0.00935 ^ definitely 1.0445x faster jquery 8.11527+-1.03202 7.46431+-0.58215 might be 1.0872x faster box2d x2 12.57739+-0.13561 ! 13.08020+-0.23478 ! definitely 1.0400x slower zlib x2 384.27230+-18.61507 ? 398.42453+-1.88660 ? might be 1.0368x slower typescript x2 821.99406+-8.82742 ? 869.12850+-131.49051 ? might be 1.0573x slower <geometric> 6.64357+-0.03593 ? 6.66855+-0.08163 ? might be 1.0038x slower TipOfTree DoubleRealUse Kraken: ai-astar 236.443+-1.670 236.181+-1.787 audio-beat-detection 107.971+-0.979 ^ 105.016+-0.805 ^ definitely 1.0281x faster audio-dft 119.337+-2.966 ? 120.659+-4.208 ? might be 1.0111x slower audio-fft 85.316+-4.901 ? 87.926+-6.763 ? might be 1.0306x slower audio-oscillator 78.017+-2.126 77.422+-1.466 imaging-darkroom 105.233+-1.858 ? 108.444+-2.833 ? might be 1.0305x slower imaging-desaturate 64.715+-2.082 64.201+-1.512 imaging-gaussian-blur 113.112+-5.271 110.452+-1.969 might be 1.0241x faster json-parse-financial 48.111+-3.034 ? 49.360+-1.908 ? might be 1.0260x slower json-stringify-tinderbox 28.977+-1.646 28.150+-0.096 might be 1.0294x faster stanford-crypto-aes 57.852+-0.744 ? 58.111+-1.059 ? stanford-crypto-ccm 50.009+-2.686 47.360+-1.271 might be 1.0559x faster stanford-crypto-pbkdf2 110.913+-2.068 ? 113.451+-5.204 ? might be 1.0229x slower stanford-crypto-sha256-iterative 44.537+-2.003 42.976+-0.941 might be 1.0363x faster <arithmetic> 89.324+-0.609 89.265+-0.672 might be 1.0007x faster TipOfTree DoubleRealUse JSRegress: abs-boolean 2.8376+-0.3266 2.7451+-0.0865 might be 1.0337x faster adapt-to-double-divide 16.7734+-0.5426 ? 17.0118+-0.3433 ? might be 1.0142x slower aliased-arguments-getbyval 1.4055+-0.1806 1.3113+-0.0304 might be 1.0718x faster allocate-big-object 3.0466+-0.4180 3.0170+-0.4234 arguments-named-and-reflective 13.2015+-1.3778 12.6938+-0.9487 might be 1.0400x faster arguments-out-of-bounds 14.9971+-0.3518 ? 15.3243+-0.7902 ? might be 1.0218x slower arguments-strict-mode 10.8641+-0.3232 ? 11.1214+-0.9365 ? might be 1.0237x slower arguments 10.0681+-0.6876 9.8380+-0.3512 might be 1.0234x faster arity-mismatch-inlining 1.0291+-0.1555 1.0253+-0.1510 array-access-polymorphic-structure 7.0399+-0.2564 ? 7.3042+-1.0102 ? might be 1.0375x slower array-nonarray-polymorhpic-access 33.9204+-1.5068 33.8266+-1.2544 array-prototype-every 87.0354+-2.3006 84.2882+-2.7259 might be 1.0326x faster array-prototype-forEach 85.8264+-3.1040 82.1468+-2.9620 might be 1.0448x faster array-prototype-map 91.2099+-2.0517 ? 93.5383+-5.3774 ? might be 1.0255x slower array-prototype-reduce 82.2781+-4.1595 80.0555+-2.1708 might be 1.0278x faster array-prototype-reduceRight 79.4298+-1.3697 ? 80.3011+-1.5326 ? might be 1.0110x slower array-prototype-some 87.3388+-2.5978 83.0658+-3.1192 might be 1.0514x faster array-splice-contiguous 45.5822+-1.0578 43.6873+-1.0541 might be 1.0434x faster array-with-double-add 4.4175+-0.3048 ? 4.6088+-0.4721 ? might be 1.0433x slower array-with-double-increment 3.4209+-0.3021 3.3191+-0.0958 might be 1.0307x faster array-with-double-mul-add 5.3308+-0.1826 5.2437+-0.1354 might be 1.0166x faster array-with-double-sum 3.3361+-0.0229 ? 3.3625+-0.0653 ? array-with-int32-add-sub 6.8907+-0.1447 ? 6.9786+-0.2622 ? might be 1.0127x slower array-with-int32-or-double-sum 3.4983+-0.1685 3.4334+-0.0686 might be 1.0189x faster ArrayBuffer-DataView-alloc-large-long-lived 38.4041+-1.9034 38.1603+-1.8058 ArrayBuffer-DataView-alloc-long-lived 15.3880+-1.5195 14.1374+-0.1883 might be 1.0885x faster ArrayBuffer-Int32Array-byteOffset 4.2602+-0.6290 4.2323+-0.6394 ArrayBuffer-Int8Array-alloc-large-long-lived 39.0927+-1.6346 38.8737+-1.3288 ArrayBuffer-Int8Array-alloc-long-lived-buffer 22.8891+-1.4255 ? 24.0944+-2.4210 ? might be 1.0527x slower ArrayBuffer-Int8Array-alloc-long-lived 14.4453+-1.6649 13.8597+-1.1174 might be 1.0423x faster ArrayBuffer-Int8Array-alloc 10.6375+-0.2400 10.5234+-0.2488 might be 1.0108x faster asmjs_bool_bug 7.8302+-0.2158 7.8073+-0.2157 assign-custom-setter-polymorphic 3.5393+-0.6087 3.1836+-0.1760 might be 1.1117x faster assign-custom-setter 4.3242+-0.1463 ? 4.4461+-0.5629 ? might be 1.0282x slower basic-set 10.4209+-2.5099 10.3842+-1.3897 big-int-mul 4.2530+-0.0442 ? 4.3186+-0.1396 ? might be 1.0154x slower boolean-test 3.1616+-0.0397 ? 3.2970+-0.3065 ? might be 1.0428x slower branch-fold 4.1911+-0.3835 4.0564+-0.3298 might be 1.0332x faster branch-on-string-as-boolean 20.4595+-0.4351 ? 20.7202+-0.7411 ? might be 1.0127x slower by-val-generic 8.1837+-0.1469 ? 8.6629+-1.2123 ? might be 1.0586x slower call-spread-apply 30.8493+-1.0747 ? 32.0629+-1.5713 ? might be 1.0393x slower call-spread-call 26.0834+-0.7277 ? 26.7745+-2.2894 ? might be 1.0265x slower captured-assignments 0.5478+-0.0517 0.5298+-0.0321 might be 1.0339x faster cast-int-to-double 5.4578+-0.2206 5.4109+-0.1563 cell-argument 8.7883+-0.3329 ? 8.8635+-0.4228 ? cfg-simplify 2.9381+-0.1462 2.8512+-0.0344 might be 1.0305x faster chain-getter-access 9.5314+-0.1399 9.4527+-0.2901 cmpeq-obj-to-obj-other 11.9466+-1.0611 ? 12.1261+-0.8434 ? might be 1.0150x slower constant-test 5.0378+-0.0863 5.0149+-0.0348 create-lots-of-functions 11.7821+-0.4059 11.6198+-0.2246 might be 1.0140x faster cse-new-array-buffer 2.6167+-0.2285 2.5841+-0.0810 might be 1.0126x faster cse-new-array 2.6519+-0.0500 ? 2.6969+-0.1211 ? might be 1.0170x slower DataView-custom-properties 42.7445+-1.0516 ? 43.8654+-2.3752 ? might be 1.0262x slower deconstructing-parameters-overridden-by-function 0.6428+-0.1140 0.5741+-0.0199 might be 1.1196x faster delay-tear-off-arguments-strictmode 14.4125+-0.2257 ? 14.4250+-0.2993 ? deltablue-varargs 210.4035+-0.7795 ? 212.7792+-3.2653 ? might be 1.0113x slower destructuring-arguments 17.3330+-0.3969 ? 17.8540+-0.5462 ? might be 1.0301x slower destructuring-swap 5.2234+-0.1952 5.1254+-0.0739 might be 1.0191x faster direct-arguments-getbyval 1.3277+-0.0776 1.3091+-0.0347 might be 1.0142x faster div-boolean-double 5.3381+-0.1240 5.2511+-0.0229 might be 1.0166x faster div-boolean 7.8847+-0.1132 7.8754+-0.0961 double-get-by-val-out-of-bounds 4.5522+-0.0381 ? 4.7736+-0.2450 ? might be 1.0486x slower double-pollution-getbyval 8.9635+-0.1112 8.9047+-0.0870 double-pollution-putbyoffset 4.4185+-0.0732 ? 4.4722+-0.2199 ? might be 1.0122x slower double-real-use 39.0668+-1.6955 ^ 30.4990+-1.2299 ^ definitely 1.2809x faster double-to-int32-typed-array-no-inline 2.7313+-0.2043 ? 2.7535+-0.2377 ? double-to-int32-typed-array 2.1572+-0.2232 2.0500+-0.0574 might be 1.0523x faster double-to-uint32-typed-array-no-inline 2.7023+-0.2326 2.6252+-0.0622 might be 1.0294x faster double-to-uint32-typed-array 2.0720+-0.0287 ? 2.3260+-0.3393 ? might be 1.1226x slower elidable-new-object-dag 44.2897+-1.3454 ? 44.4213+-0.9309 ? elidable-new-object-roflcopter 44.8328+-1.5369 ? 45.4310+-1.6736 ? might be 1.0133x slower elidable-new-object-then-call 40.2274+-1.3271 ? 41.3258+-2.2996 ? might be 1.0273x slower elidable-new-object-tree 46.4532+-1.2336 45.0935+-1.1671 might be 1.0302x faster empty-string-plus-int 5.6277+-0.2631 5.5695+-0.2339 might be 1.0104x faster emscripten-cube2hash 39.1297+-1.4873 ? 41.1858+-4.3145 ? might be 1.0525x slower exit-length-on-plain-object 15.0299+-1.5489 14.8380+-1.5363 might be 1.0129x faster external-arguments-getbyval 1.3437+-0.1977 1.2830+-0.0798 might be 1.0473x faster external-arguments-putbyval 2.4117+-0.0928 ? 2.5052+-0.2451 ? might be 1.0388x slower fixed-typed-array-storage-var-index 1.2375+-0.0392 ? 1.3359+-0.1200 ? might be 1.0794x slower fixed-typed-array-storage 0.9421+-0.1219 ? 0.9768+-0.1244 ? might be 1.0368x slower Float32Array-matrix-mult 4.5734+-0.1918 ? 4.5754+-0.2368 ? Float32Array-to-Float64Array-set 57.2163+-1.1058 56.1418+-0.5572 might be 1.0191x faster Float64Array-alloc-long-lived 94.5553+-14.3392 88.8394+-2.0734 might be 1.0643x faster Float64Array-to-Int16Array-set 80.2882+-24.3991 71.4111+-2.2570 might be 1.1243x faster fold-double-to-int 13.5704+-0.2985 ? 14.6393+-1.3181 ? might be 1.0788x slower fold-get-by-id-to-multi-get-by-offset-rare-int 10.7907+-1.3939 10.1106+-1.3575 might be 1.0673x faster fold-get-by-id-to-multi-get-by-offset 10.7985+-1.0210 10.2894+-0.9842 might be 1.0495x faster fold-multi-get-by-offset-to-get-by-offset 9.8443+-0.7882 ? 10.0229+-1.1569 ? might be 1.0181x slower fold-multi-get-by-offset-to-poly-get-by-offset 9.9176+-0.6141 9.5675+-0.5345 might be 1.0366x faster fold-multi-put-by-offset-to-poly-put-by-offset 10.7037+-1.7508 8.9285+-0.5125 might be 1.1988x faster fold-multi-put-by-offset-to-put-by-offset 7.8844+-1.3119 7.6875+-1.5877 might be 1.0256x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 10.4602+-1.3174 10.4260+-0.9964 fold-put-by-id-to-multi-put-by-offset 9.9980+-1.9674 ? 10.4753+-0.8441 ? might be 1.0477x slower fold-put-structure 7.6666+-1.6118 7.4066+-1.4183 might be 1.0351x faster for-of-iterate-array-entries 4.6623+-0.1293 ? 4.7010+-0.1734 ? for-of-iterate-array-keys 3.9391+-0.3203 3.9340+-0.3743 for-of-iterate-array-values 3.6787+-0.1282 3.6475+-0.2078 fround 21.4746+-0.9308 20.8999+-0.5318 might be 1.0275x faster ftl-library-inlining-dataview 64.9382+-1.0983 ? 65.1637+-1.6433 ? ftl-library-inlining 74.2057+-18.0303 66.9991+-0.9306 might be 1.1076x faster function-dot-apply 2.5230+-0.2466 2.2663+-0.0386 might be 1.1133x faster function-test 3.0274+-0.2219 2.9648+-0.0695 might be 1.0211x faster function-with-eval 102.6410+-2.4377 102.6136+-2.3049 gcse-poly-get-less-obvious 18.5053+-1.0033 ? 18.7858+-0.8200 ? might be 1.0152x slower gcse-poly-get 20.1694+-1.5331 19.9557+-1.4433 might be 1.0107x faster gcse 4.4203+-0.0701 ? 4.5905+-0.4470 ? might be 1.0385x slower get-by-id-bimorphic-check-structure-elimination-simple 2.9832+-0.3608 2.8367+-0.1326 might be 1.0516x faster get-by-id-bimorphic-check-structure-elimination 6.1282+-0.1250 ? 6.2177+-0.2375 ? might be 1.0146x slower get-by-id-chain-from-try-block 7.0140+-0.5718 6.6600+-0.1425 might be 1.0531x faster get-by-id-check-structure-elimination 5.1483+-0.0670 5.1313+-0.0862 get-by-id-proto-or-self 19.4073+-1.6552 ? 19.9637+-2.1348 ? might be 1.0287x slower get-by-id-quadmorphic-check-structure-elimination-simple 3.0160+-0.0383 ? 3.0227+-0.0682 ? get-by-id-self-or-proto 19.9460+-1.7833 19.0833+-1.7449 might be 1.0452x faster get-by-val-out-of-bounds 4.5542+-0.1369 4.5197+-0.1044 get_callee_monomorphic 4.3585+-3.2620 2.9818+-0.2521 might be 1.4617x faster get_callee_polymorphic 3.9095+-0.2449 ? 4.0955+-0.3186 ? might be 1.0476x slower getter-no-activation 5.0218+-0.1814 ? 5.1886+-0.3417 ? might be 1.0332x slower getter-prototype 14.9541+-0.2419 ? 15.9630+-0.9818 ? might be 1.0675x slower getter-richards 124.2562+-6.2881 ? 125.4907+-6.0617 ? getter 6.6858+-0.6336 5.9235+-0.7752 might be 1.1287x faster global-var-const-infer-fire-from-opt 1.0173+-0.1377 1.0118+-0.1388 global-var-const-infer 0.9065+-0.1779 ? 0.9185+-0.1056 ? might be 1.0132x slower HashMap-put-get-iterate-keys 30.2247+-1.3320 ? 31.1772+-3.0472 ? might be 1.0315x slower HashMap-put-get-iterate 31.3045+-2.3697 ? 31.4943+-0.6194 ? HashMap-string-put-get-iterate 32.0721+-1.8685 ? 32.9683+-2.0579 ? might be 1.0279x slower hoist-make-rope 12.7364+-1.3327 12.2931+-0.7632 might be 1.0361x faster hoist-poly-check-structure-effectful-loop 5.1100+-0.0293 ? 5.2917+-0.2498 ? might be 1.0356x slower hoist-poly-check-structure 3.7509+-0.0777 ? 3.9055+-0.3564 ? might be 1.0412x slower imul-double-only 8.6060+-0.1512 8.6001+-0.2152 imul-int-only 10.4123+-1.4735 10.1228+-0.5164 might be 1.0286x faster imul-mixed 8.5044+-0.4534 ? 8.8334+-0.3452 ? might be 1.0387x slower in-four-cases 22.2348+-0.2869 ? 22.5486+-0.4569 ? might be 1.0141x slower in-one-case-false 11.0827+-0.0546 ? 11.1069+-0.1143 ? in-one-case-true 12.1269+-1.6875 11.1901+-0.1851 might be 1.0837x faster in-two-cases 11.8077+-0.1629 11.7408+-0.1111 indexed-properties-in-objects 2.9668+-0.0758 ? 3.1082+-0.4127 ? might be 1.0477x slower infer-closure-const-then-mov-no-inline 4.5200+-0.8152 4.2318+-0.2552 might be 1.0681x faster infer-closure-const-then-mov 19.8160+-0.2918 ? 20.1775+-0.3038 ? might be 1.0182x slower infer-closure-const-then-put-to-scope-no-inline 13.2520+-1.1941 13.1132+-0.9908 might be 1.0106x faster infer-closure-const-then-put-to-scope 21.8588+-1.0526 ? 22.2146+-1.2806 ? might be 1.0163x slower infer-closure-const-then-reenter-no-inline 54.5949+-0.3532 ? 56.0672+-2.8812 ? might be 1.0270x slower infer-closure-const-then-reenter 22.8127+-1.4267 ? 23.2625+-2.3935 ? might be 1.0197x slower infer-constant-global-property 4.0082+-0.3825 3.5937+-0.0933 might be 1.1153x faster infer-constant-property 2.8944+-0.2435 2.8083+-0.0785 might be 1.0307x faster infer-one-time-closure-ten-vars 13.3232+-1.4699 13.2872+-1.5319 infer-one-time-closure-two-vars 12.2513+-0.3514 ? 12.2869+-0.2255 ? infer-one-time-closure 12.6633+-1.5575 12.0705+-0.2563 might be 1.0491x faster infer-one-time-deep-closure 21.2947+-0.6907 ? 21.6072+-1.4548 ? might be 1.0147x slower inline-arguments-access 4.6730+-0.1381 ? 4.7654+-0.1724 ? might be 1.0198x slower inline-arguments-aliased-access 4.7504+-0.1716 4.7082+-0.0807 inline-arguments-local-escape 4.8551+-0.3103 4.6902+-0.0616 might be 1.0352x faster inline-get-scoped-var 5.1100+-0.1824 ? 5.1344+-0.5319 ? inlined-put-by-id-transition 11.9030+-0.5962 ? 12.2266+-0.3723 ? might be 1.0272x slower int-or-other-abs-then-get-by-val 5.1215+-0.2454 5.0756+-0.0787 int-or-other-abs-zero-then-get-by-val 17.8440+-0.9926 17.6526+-0.9544 might be 1.0108x faster int-or-other-add-then-get-by-val 4.4205+-0.1034 ? 4.4861+-0.1758 ? might be 1.0149x slower int-or-other-add 5.3848+-0.0202 ? 5.3971+-0.0357 ? int-or-other-div-then-get-by-val 4.3278+-0.1161 ? 4.3933+-0.2540 ? might be 1.0151x slower int-or-other-max-then-get-by-val 4.7248+-0.9101 4.5157+-0.2431 might be 1.0463x faster int-or-other-min-then-get-by-val 4.4384+-0.1156 ? 4.4504+-0.1541 ? int-or-other-mod-then-get-by-val 4.2196+-0.2621 4.1223+-0.2608 might be 1.0236x faster int-or-other-mul-then-get-by-val 3.9810+-0.0937 ? 4.1138+-0.2077 ? might be 1.0333x slower int-or-other-neg-then-get-by-val 4.8594+-0.1167 ? 4.8968+-0.1402 ? int-or-other-neg-zero-then-get-by-val 18.4589+-1.7394 ? 19.3217+-1.9011 ? might be 1.0467x slower int-or-other-sub-then-get-by-val 4.4002+-0.0115 4.3920+-0.0349 int-or-other-sub 3.7487+-0.1903 3.6540+-0.0526 might be 1.0259x faster int-overflow-local 4.6661+-0.1774 4.6343+-0.1715 Int16Array-alloc-long-lived 54.3511+-2.9206 ? 54.5292+-2.1662 ? Int16Array-bubble-sort-with-byteLength 19.9249+-0.9188 ? 20.2442+-0.6781 ? might be 1.0160x slower Int16Array-bubble-sort 20.8496+-1.4314 20.3274+-0.5610 might be 1.0257x faster Int16Array-load-int-mul 1.7804+-0.2673 ? 1.7904+-0.2219 ? Int16Array-to-Int32Array-set 57.8140+-1.8583 ? 58.3795+-2.3094 ? Int32Array-alloc-large 23.6589+-0.1905 ? 23.9900+-0.6308 ? might be 1.0140x slower Int32Array-alloc-long-lived 63.2822+-1.4778 ? 64.7022+-1.5537 ? might be 1.0224x slower Int32Array-alloc 3.7797+-0.4164 3.6362+-0.3875 might be 1.0395x faster Int32Array-Int8Array-view-alloc 7.1634+-1.0068 6.7926+-0.3483 might be 1.0546x faster int52-spill 6.2610+-0.7893 6.0571+-0.1953 might be 1.0337x faster Int8Array-alloc-long-lived 48.1276+-1.4136 ? 48.3827+-0.9814 ? Int8Array-load-with-byteLength 3.5852+-0.4155 3.4337+-0.0975 might be 1.0441x faster Int8Array-load 3.5115+-0.2397 3.4783+-0.1436 integer-divide 11.3422+-0.3493 10.9189+-0.1067 might be 1.0388x faster integer-modulo 2.1478+-0.1087 2.1188+-0.1170 might be 1.0137x faster is-boolean-fold-tricky 4.4830+-0.0704 ? 4.7302+-0.3595 ? might be 1.0551x slower is-boolean-fold 2.9036+-0.0376 ? 3.1035+-0.3258 ? might be 1.0688x slower is-function-fold-tricky-internal-function 11.9618+-0.0885 11.9406+-0.1377 is-function-fold-tricky 4.6790+-0.2567 4.6241+-0.0850 might be 1.0119x faster is-function-fold 2.9247+-0.0667 ? 2.9884+-0.1406 ? might be 1.0218x slower is-number-fold-tricky 4.5805+-0.1666 ? 4.6740+-0.3337 ? might be 1.0204x slower is-number-fold 2.9275+-0.0550 ? 3.1178+-0.3831 ? might be 1.0650x slower is-object-or-null-fold-functions 2.9695+-0.0318 ? 3.0308+-0.2409 ? might be 1.0206x slower is-object-or-null-fold-less-tricky 4.7665+-0.6049 4.6498+-0.0841 might be 1.0251x faster is-object-or-null-fold-tricky 6.6985+-0.0985 ? 6.7192+-0.1697 ? is-object-or-null-fold 3.0727+-0.2637 2.9555+-0.0719 might be 1.0396x faster is-object-or-null-trickier-function 5.0022+-0.5587 ? 5.0970+-0.5050 ? might be 1.0189x slower is-object-or-null-trickier-internal-function 12.7261+-0.3110 ? 13.0110+-0.6257 ? might be 1.0224x slower is-object-or-null-tricky-function 4.9194+-0.4001 4.7124+-0.0998 might be 1.0439x faster is-object-or-null-tricky-internal-function 9.4375+-0.1333 ? 9.4692+-0.1508 ? is-string-fold-tricky 4.6027+-0.2229 ? 4.6833+-0.2499 ? might be 1.0175x slower is-string-fold 2.9202+-0.1234 ? 2.9450+-0.1312 ? is-undefined-fold-tricky 3.8329+-0.1706 3.7989+-0.0864 is-undefined-fold 2.9125+-0.0294 ? 3.1643+-0.3385 ? might be 1.0865x slower large-int-captured 4.7419+-0.1537 ? 4.8794+-0.1371 ? might be 1.0290x slower large-int-neg 17.1477+-1.7475 16.3807+-0.4393 might be 1.0468x faster large-int 15.5111+-1.2273 ? 16.0937+-0.7750 ? might be 1.0376x slower load-varargs-elimination 24.2316+-1.2811 ? 24.4222+-1.9877 ? logical-not-weird-types 3.3941+-0.1888 3.3179+-0.0455 might be 1.0230x faster logical-not 4.6557+-0.0309 ? 4.6676+-0.0862 ? lots-of-fields 12.6707+-0.3571 12.5468+-0.1883 make-indexed-storage 3.1636+-0.3018 ? 3.3836+-0.6067 ? might be 1.0695x slower make-rope-cse 12.2181+-1.3334 11.8793+-1.1884 might be 1.0285x faster marsaglia-larger-ints 37.0295+-2.3763 ? 37.1607+-1.6921 ? marsaglia-osr-entry 24.4607+-2.0935 23.7255+-1.5469 might be 1.0310x faster math-with-out-of-bounds-array-values 25.5886+-1.8904 25.0866+-0.7850 might be 1.0200x faster max-boolean 2.5857+-0.0435 ? 2.6598+-0.1374 ? might be 1.0287x slower method-on-number 17.3110+-0.1650 ? 17.5668+-0.6050 ? might be 1.0148x slower min-boolean 2.5511+-0.0263 2.5465+-0.0703 minus-boolean-double 3.3351+-0.1154 ? 3.3551+-0.2793 ? minus-boolean 2.4524+-0.1014 ? 2.5657+-0.3028 ? might be 1.0462x slower misc-strict-eq 38.7204+-1.0216 ? 42.2240+-6.5308 ? might be 1.0905x slower mod-boolean-double 10.9502+-0.0796 10.9231+-0.1240 mod-boolean 8.0583+-0.1661 7.8685+-0.0303 might be 1.0241x faster mul-boolean-double 3.7335+-0.0744 ? 3.7753+-0.1276 ? might be 1.0112x slower mul-boolean 3.0894+-0.3625 2.9347+-0.0483 might be 1.0527x faster neg-boolean 3.4464+-0.4038 3.2710+-0.0869 might be 1.0536x faster negative-zero-divide 0.4207+-0.0578 0.4096+-0.0471 might be 1.0271x faster negative-zero-modulo 0.4023+-0.0598 0.3929+-0.0273 might be 1.0237x faster negative-zero-negate 0.3674+-0.0188 0.3531+-0.0190 might be 1.0403x faster nested-function-parsing 40.5914+-1.7576 ? 41.7058+-3.3320 ? might be 1.0275x slower new-array-buffer-dead 114.2998+-1.5549 ? 114.6182+-1.3925 ? new-array-buffer-push 7.2747+-0.9603 6.9245+-0.1207 might be 1.0506x faster new-array-dead 19.3903+-0.5255 ? 19.8325+-1.2238 ? might be 1.0228x slower new-array-push 6.7833+-0.3648 6.4696+-0.1749 might be 1.0485x faster no-inline-constructor 41.8991+-1.5522 ? 41.9394+-1.6583 ? number-test 3.1413+-0.1006 ? 3.2775+-0.3410 ? might be 1.0434x slower object-closure-call 5.7493+-0.0656 ? 6.0048+-0.2294 ? might be 1.0444x slower object-test 2.8927+-0.0469 ? 2.9446+-0.1355 ? might be 1.0179x slower obvious-sink-pathology-taken 142.9825+-2.1512 140.8191+-2.0056 might be 1.0154x faster obvious-sink-pathology 133.0490+-1.4301 ? 133.2569+-2.4277 ? obviously-elidable-new-object 35.7445+-1.7268 35.3518+-1.5200 might be 1.0111x faster plus-boolean-arith 2.5623+-0.0585 ? 2.6721+-0.2732 ? might be 1.0429x slower plus-boolean-double 3.3501+-0.2911 3.2718+-0.0602 might be 1.0239x faster plus-boolean 2.5957+-0.2950 2.5927+-0.3068 poly-chain-access-different-prototypes-simple 3.3689+-0.0501 ? 3.7232+-0.4822 ? might be 1.1052x slower poly-chain-access-different-prototypes 2.7000+-0.2363 ? 2.7984+-0.3462 ? might be 1.0364x slower poly-chain-access-simpler 3.3518+-0.0442 ? 3.3630+-0.0640 ? poly-chain-access 2.7590+-0.3102 2.7491+-0.3492 poly-stricteq 60.5506+-1.8994 ? 63.6329+-3.3601 ? might be 1.0509x slower polymorphic-array-call 1.4986+-0.1730 1.4307+-0.0843 might be 1.0474x faster polymorphic-get-by-id 3.2782+-0.2155 3.2665+-0.2156 polymorphic-put-by-id 33.4622+-1.7446 ? 33.6665+-3.0862 ? polymorphic-structure 15.0530+-0.2385 14.8111+-0.1080 might be 1.0163x faster polyvariant-monomorphic-get-by-id 8.8453+-0.2127 8.7787+-0.3083 proto-getter-access 9.2908+-0.1065 ? 9.3082+-0.1288 ? put-by-id-replace-and-transition 9.7959+-0.2382 ? 10.0859+-0.5009 ? might be 1.0296x slower put-by-id-slightly-polymorphic 3.1323+-0.4104 2.9204+-0.1634 might be 1.0726x faster put-by-id 13.0553+-0.4262 12.7040+-0.3052 might be 1.0277x faster put-by-val-direct 0.4283+-0.0795 0.4272+-0.0522 put-by-val-large-index-blank-indexing-type 13.1276+-1.4051 12.1064+-0.3343 might be 1.0844x faster put-by-val-machine-int 2.9094+-0.1600 ? 2.9724+-0.2621 ? might be 1.0216x slower rare-osr-exit-on-local 15.9099+-0.6103 15.8766+-0.9555 register-pressure-from-osr 21.9226+-1.2966 ? 22.2310+-1.3063 ? might be 1.0141x slower repeat-multi-get-by-offset 24.3743+-0.3086 ? 24.7098+-0.2497 ? might be 1.0138x slower setter-prototype 10.7619+-0.5196 10.4538+-0.1769 might be 1.0295x faster setter 6.2537+-0.8783 ? 6.3359+-0.5745 ? might be 1.0131x slower simple-activation-demo 25.2025+-0.4405 ? 25.4860+-0.4742 ? might be 1.0113x slower simple-getter-access 11.6899+-0.2631 ? 11.7480+-0.3036 ? simple-poly-call-nested 8.1728+-0.0876 8.1190+-0.1956 simple-poly-call 1.4102+-0.0767 1.3463+-0.0401 might be 1.0475x faster sin-boolean 22.6632+-0.5788 ? 23.3724+-1.3998 ? might be 1.0313x slower singleton-scope 63.9156+-1.9700 63.0796+-1.9565 might be 1.0133x faster sink-function 12.4641+-0.7043 ? 12.4647+-0.3738 ? sink-huge-activation 19.2975+-0.7630 ? 19.8514+-1.5714 ? might be 1.0287x slower sinkable-new-object-dag 71.9130+-2.4208 70.5653+-1.8497 might be 1.0191x faster sinkable-new-object-taken 52.0552+-3.0743 ? 52.3549+-4.9129 ? sinkable-new-object 39.1655+-0.6509 ? 39.7068+-1.5556 ? might be 1.0138x slower slow-array-profile-convergence 2.8878+-0.2076 ? 2.9471+-0.0751 ? might be 1.0205x slower slow-convergence 3.0730+-0.3470 2.7896+-0.0615 might be 1.1016x faster slow-ternaries 18.8223+-2.0692 ? 21.4842+-2.4291 ? might be 1.1414x slower sorting-benchmark 19.2030+-0.5318 18.6563+-0.4758 might be 1.0293x faster sparse-conditional 1.2264+-0.0749 ? 1.2312+-0.1474 ? splice-to-remove 16.0563+-1.7855 15.6812+-1.5290 might be 1.0239x faster string-char-code-at 16.7347+-0.8669 16.4208+-0.5914 might be 1.0191x faster string-concat-object 2.8617+-0.3465 2.7163+-0.2363 might be 1.0535x faster string-concat-pair-object 2.8368+-0.3453 2.7112+-0.2158 might be 1.0463x faster string-concat-pair-simple 12.3529+-1.0113 12.1772+-0.9165 might be 1.0144x faster string-concat-simple 12.4578+-0.4951 ? 12.5195+-1.1764 ? string-cons-repeat 8.0747+-0.2880 ? 8.2799+-0.3900 ? might be 1.0254x slower string-cons-tower 8.5498+-0.6764 8.4909+-0.6138 string-equality 18.5198+-1.5364 17.8836+-0.5688 might be 1.0356x faster string-get-by-val-big-char 7.3082+-0.0762 7.2928+-0.0735 string-get-by-val-out-of-bounds-insane 3.8822+-0.4778 3.7118+-0.2930 might be 1.0459x faster string-get-by-val-out-of-bounds 5.9774+-0.9069 5.5479+-0.0299 might be 1.0774x faster string-get-by-val 3.3770+-0.0225 3.3624+-0.0220 string-hash 2.1770+-0.1004 ? 2.2645+-0.2380 ? might be 1.0402x slower string-long-ident-equality 14.7213+-0.3649 ? 14.7865+-0.4588 ? string-out-of-bounds 15.2880+-0.4108 14.9545+-0.3898 might be 1.0223x faster string-repeat-arith 35.7542+-1.4529 35.4350+-2.9356 string-sub 67.8794+-4.3434 ? 68.5086+-4.5731 ? string-test 3.0181+-0.1270 ? 3.2303+-0.3456 ? might be 1.0703x slower string-var-equality 32.7290+-1.3032 ? 34.2165+-2.1635 ? might be 1.0454x slower structure-hoist-over-transitions 2.7901+-0.1108 ? 2.8010+-0.2556 ? substring-concat-weird 41.9108+-1.3926 40.7247+-1.8571 might be 1.0291x faster substring-concat 43.4109+-1.1216 ? 43.7703+-1.1727 ? substring 46.6959+-2.3642 46.0793+-1.8715 might be 1.0134x faster switch-char-constant 3.0058+-0.4271 ? 3.0671+-0.2604 ? might be 1.0204x slower switch-char 7.1657+-0.6936 ? 8.5056+-3.2870 ? might be 1.1870x slower switch-constant 9.0639+-1.1615 8.5501+-0.3464 might be 1.0601x faster switch-string-basic-big-var 18.5407+-0.3937 18.3272+-0.2640 might be 1.0116x faster switch-string-basic-big 15.0085+-0.2522 ? 15.3356+-0.5832 ? might be 1.0218x slower switch-string-basic-var 15.2753+-0.2562 ? 15.5671+-1.1621 ? might be 1.0191x slower switch-string-basic 13.4288+-0.1705 ? 14.1586+-0.7360 ? might be 1.0543x slower switch-string-big-length-tower-var 20.9299+-1.3765 20.1623+-0.4438 might be 1.0381x faster switch-string-length-tower-var 16.5822+-1.6813 15.7602+-0.2953 might be 1.0522x faster switch-string-length-tower 13.2035+-0.1588 ? 13.3005+-0.2497 ? switch-string-short 13.1145+-0.2329 ? 13.2142+-0.3672 ? switch 12.6549+-0.2787 ? 12.8795+-0.2741 ? might be 1.0177x slower tear-off-arguments-simple 3.6147+-0.2295 ? 3.6676+-0.2604 ? might be 1.0146x slower tear-off-arguments 4.8877+-0.1064 4.8542+-0.0646 temporal-structure 12.2610+-0.0931 ? 12.3354+-0.2138 ? to-int32-boolean 13.8328+-0.1757 ? 14.0223+-0.2766 ? might be 1.0137x slower try-catch-get-by-val-cloned-arguments 15.2725+-1.2145 ? 15.8356+-1.6117 ? might be 1.0369x slower try-catch-get-by-val-direct-arguments 6.7498+-0.2283 ? 7.1612+-0.9423 ? might be 1.0610x slower try-catch-get-by-val-scoped-arguments 8.1247+-0.9463 ? 8.6989+-1.4290 ? might be 1.0707x slower typed-array-get-set-by-val-profiling 32.0531+-0.4645 ? 33.2397+-1.5452 ? might be 1.0370x slower undefined-property-access 345.4032+-4.9826 343.1266+-3.7414 undefined-test 3.0913+-0.0947 ? 3.2022+-0.3273 ? might be 1.0359x slower unprofiled-licm 24.0673+-1.8458 22.7692+-0.2689 might be 1.0570x faster varargs-call 15.5179+-1.1307 ? 15.8522+-0.9078 ? might be 1.0215x slower varargs-construct-inline 27.9700+-0.3651 ? 28.1016+-0.4652 ? varargs-construct 23.2754+-1.1227 22.8737+-0.5924 might be 1.0176x faster varargs-inline 9.3752+-0.1059 ? 9.5979+-0.5112 ? might be 1.0238x slower varargs-strict-mode 10.1875+-0.3392 ? 10.6054+-1.0846 ? might be 1.0410x slower varargs 10.2556+-0.3138 10.1293+-0.1912 might be 1.0125x faster weird-inlining-const-prop 3.4197+-0.1985 ? 3.5808+-0.6880 ? might be 1.0471x slower <geometric> 9.0044+-0.0365 8.9777+-0.0336 might be 1.0030x faster TipOfTree DoubleRealUse AsmBench: bigfib.cpp 503.0432+-3.8539 ? 504.4475+-12.4463 ? cray.c 442.8666+-37.6423 433.9375+-11.7515 might be 1.0206x faster dry.c 497.8990+-32.9357 490.5914+-10.1555 might be 1.0149x faster FloatMM.c 728.0811+-8.9143 ? 732.2224+-7.0928 ? gcc-loops.cpp 4288.9237+-12.7884 4287.5203+-10.1031 n-body.c 986.8309+-16.8883 ? 987.5693+-4.1504 ? Quicksort.c 424.0061+-8.4774 420.4270+-5.0102 stepanov_container.cpp 3644.1721+-28.9923 3625.5382+-33.9577 Towers.c 262.4240+-4.6459 ? 268.7939+-11.3024 ? might be 1.0243x slower <geometric> 802.4849+-8.3162 801.3281+-5.0665 might be 1.0014x faster TipOfTree DoubleRealUse CompressionBench: huffman 372.1481+-2.4314 359.9830+-21.8492 might be 1.0338x faster arithmetic-simple 369.5149+-1.8958 365.4513+-3.8456 might be 1.0111x faster arithmetic-precise 284.2368+-4.0836 ? 285.6455+-4.0471 ? arithmetic-complex-precise 282.7521+-3.7237 ? 283.8317+-3.8072 ? arithmetic-precise-order-0 377.7775+-3.9822 ? 383.9491+-12.6373 ? might be 1.0163x slower arithmetic-precise-order-1 336.8847+-5.7941 335.5776+-3.4991 arithmetic-precise-order-2 367.8700+-2.4209 ? 369.9931+-4.7226 ? arithmetic-simple-order-1 425.8757+-3.1045 424.7941+-1.7873 arithmetic-simple-order-2 476.4365+-6.9473 ? 486.7944+-26.6505 ? might be 1.0217x slower lz-string 321.2834+-8.3610 ? 324.4677+-23.6514 ? <geometric> 357.0867+-1.0973 ? 357.3429+-2.1540 ? might be 1.0007x slower TipOfTree DoubleRealUse Geomean of preferred means: <scaled-result> 62.7480+-0.2255 62.4810+-0.2299 might be 1.0043x faster
Performance of my new approach, which doesn't exit on int32: 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 (r185168) "DoubleRealUse" at /Volumes/Data/pizlo/primary/OpenSource/WebKitBuild/Release/jsc (r185168) 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 DoubleRealUse SunSpider: 3d-cube 5.3221+-0.1115 5.2605+-0.1609 might be 1.0117x faster 3d-morph 5.9623+-0.2388 5.9599+-0.2709 3d-raytrace 6.8566+-0.6339 6.5788+-0.0808 might be 1.0422x faster access-binary-trees 2.4335+-0.1505 2.4120+-0.1860 access-fannkuch 6.1764+-0.1127 6.0918+-0.1051 might be 1.0139x faster access-nbody 3.3754+-0.4442 3.0621+-0.1999 might be 1.1023x faster access-nsieve 3.5551+-0.2637 3.5038+-0.3001 might be 1.0146x faster bitops-3bit-bits-in-byte 1.6198+-0.0319 ? 1.6975+-0.2081 ? might be 1.0480x slower bitops-bits-in-byte 3.8624+-0.2744 ? 3.9931+-0.2235 ? might be 1.0338x slower bitops-bitwise-and 2.2467+-0.2766 2.1314+-0.0466 might be 1.0541x faster bitops-nsieve-bits 3.3441+-0.1082 3.3337+-0.1040 controlflow-recursive 3.2377+-0.1895 2.8695+-0.2331 might be 1.1283x faster crypto-aes 4.9750+-0.3584 4.9052+-0.1531 might be 1.0142x faster crypto-md5 3.0975+-0.2459 2.8215+-0.1347 might be 1.0978x faster crypto-sha1 3.6498+-0.3771 ? 3.8837+-0.4193 ? might be 1.0641x slower date-format-tofte 9.3612+-0.1448 ? 9.4022+-0.1499 ? date-format-xparb 5.9841+-0.2561 ? 6.1887+-0.4810 ? might be 1.0342x slower math-cordic 3.2651+-0.1193 3.1871+-0.0546 might be 1.0245x faster math-partial-sums 5.8693+-0.4863 5.5940+-0.1428 might be 1.0492x faster math-spectral-norm 2.1519+-0.2269 2.1172+-0.1708 might be 1.0164x faster regexp-dna 7.5005+-0.0389 ? 8.0334+-1.3654 ? might be 1.0711x slower string-base64 5.9878+-1.0825 5.4905+-0.8090 might be 1.0906x faster string-fasta 7.1882+-0.8249 6.9584+-0.5457 might be 1.0330x faster string-tagcloud 10.3786+-0.8621 9.8961+-0.6123 might be 1.0488x faster string-unpack-code 23.0459+-2.2604 21.7979+-2.0024 might be 1.0573x faster string-validate-input 6.0846+-0.1851 ? 6.2032+-0.3189 ? might be 1.0195x slower <arithmetic> 5.6358+-0.0808 5.5144+-0.0886 might be 1.0220x faster TipOfTree DoubleRealUse LongSpider: 3d-cube 917.2194+-42.2956 ? 919.8247+-29.7549 ? 3d-morph 1544.4682+-11.9912 1543.7540+-17.2601 3d-raytrace 712.4201+-23.6070 ? 744.5203+-41.4073 ? might be 1.0451x slower access-binary-trees 1024.1423+-40.5805 1005.8717+-14.0052 might be 1.0182x faster access-fannkuch 337.8470+-12.8270 330.5921+-10.3222 might be 1.0219x faster access-nbody 652.9954+-61.6087 592.6971+-4.4409 might be 1.1017x faster access-nsieve 479.2895+-7.5068 ? 491.1532+-34.0588 ? might be 1.0248x slower bitops-3bit-bits-in-byte 44.5645+-0.5171 ? 44.5877+-0.7342 ? bitops-bits-in-byte 105.0497+-7.8977 101.3522+-5.3547 might be 1.0365x faster bitops-nsieve-bits 434.1840+-16.4957 422.4702+-3.5278 might be 1.0277x faster controlflow-recursive 501.1655+-18.4525 ? 505.2799+-25.5211 ? crypto-aes 726.6181+-33.2660 712.1210+-5.9667 might be 1.0204x faster crypto-md5 530.9701+-10.8298 528.4897+-12.8996 crypto-sha1 606.7327+-3.9739 ? 612.4525+-38.4913 ? date-format-tofte 746.2010+-23.1563 727.0964+-9.3464 might be 1.0263x faster date-format-xparb 811.0345+-28.4121 ? 838.2397+-41.7665 ? might be 1.0335x slower hash-map 184.8923+-3.1517 181.2685+-3.3051 might be 1.0200x faster math-cordic 612.3558+-35.5435 577.8084+-3.0599 might be 1.0598x faster math-partial-sums 504.5493+-3.3006 ? 512.5730+-8.6444 ? might be 1.0159x slower math-spectral-norm 565.8687+-2.6923 ? 567.4092+-4.9666 ? string-base64 415.3897+-4.6097 ? 418.6079+-12.7659 ? string-fasta 444.6607+-23.0503 430.0969+-15.9991 might be 1.0339x faster string-tagcloud 207.4302+-16.2675 204.3066+-17.9218 might be 1.0153x faster <geometric> 461.8882+-1.8881 457.3781+-3.3135 might be 1.0099x faster TipOfTree DoubleRealUse V8Spider: crypto 57.7496+-3.0320 ? 60.8284+-5.8435 ? might be 1.0533x slower deltablue 104.7713+-3.4896 102.1827+-8.1962 might be 1.0253x faster earley-boyer 50.5662+-5.5138 ? 52.0559+-4.4320 ? might be 1.0295x slower raytrace 44.7061+-3.0388 42.8388+-2.8336 might be 1.0436x faster regexp 84.5137+-2.2940 83.1131+-2.1030 might be 1.0169x faster richards 81.2517+-6.0775 79.8196+-0.8812 might be 1.0179x faster splay 42.0199+-3.0746 40.0898+-2.0098 might be 1.0481x faster <geometric> 62.9252+-1.4146 62.3231+-1.5881 might be 1.0097x faster TipOfTree DoubleRealUse Octane: encrypt 0.20854+-0.00863 0.20386+-0.00186 might be 1.0230x faster decrypt 3.56241+-0.03378 ? 3.58548+-0.04629 ? deltablue x2 0.20159+-0.01385 ? 0.20415+-0.01228 ? might be 1.0127x slower earley 0.39619+-0.00396 0.39215+-0.00405 might be 1.0103x faster boyer 5.17320+-0.04329 ? 5.26057+-0.30956 ? might be 1.0169x slower navier-stokes x2 5.27705+-0.20541 5.22030+-0.03267 might be 1.0109x faster raytrace x2 1.28515+-0.03617 ? 1.29003+-0.05392 ? richards x2 0.12848+-0.00126 ? 0.12886+-0.00325 ? splay x2 0.39996+-0.00159 0.39906+-0.00255 regexp x2 32.90609+-3.06426 31.85910+-0.56316 might be 1.0329x faster pdfjs x2 42.91595+-0.38536 ^ 42.25975+-0.19507 ^ definitely 1.0155x faster mandreel x2 50.32801+-0.54515 ? 50.69274+-0.30064 ? gbemu x2 45.82190+-4.12467 42.43828+-0.80124 might be 1.0797x faster closure 0.59536+-0.00585 ^ 0.56619+-0.00379 ^ definitely 1.0515x faster jquery 7.63519+-0.02944 ^ 7.16633+-0.03314 ^ definitely 1.0654x faster box2d x2 12.93921+-0.94770 11.97389+-0.08236 might be 1.0806x faster zlib x2 405.26081+-9.29927 395.88812+-15.06107 might be 1.0237x faster typescript x2 853.36060+-44.88187 819.22392+-11.70259 might be 1.0417x faster <geometric> 6.73528+-0.07313 ^ 6.59899+-0.03044 ^ definitely 1.0207x faster TipOfTree DoubleRealUse Kraken: ai-astar 242.602+-12.660 240.309+-9.473 audio-beat-detection 108.350+-1.467 107.936+-1.428 audio-dft 122.741+-5.550 122.306+-3.750 audio-fft 88.611+-0.392 86.581+-5.400 might be 1.0235x faster audio-oscillator 80.961+-6.072 77.711+-1.794 might be 1.0418x faster imaging-darkroom 105.736+-3.112 ? 108.799+-5.380 ? might be 1.0290x slower imaging-desaturate 63.841+-1.471 ? 65.774+-5.839 ? might be 1.0303x slower imaging-gaussian-blur 115.439+-7.592 114.226+-6.674 might be 1.0106x faster json-parse-financial 50.726+-2.791 48.051+-1.766 might be 1.0557x faster json-stringify-tinderbox 30.833+-3.090 29.742+-1.794 might be 1.0367x faster stanford-crypto-aes 59.024+-2.176 58.361+-0.809 might be 1.0114x faster stanford-crypto-ccm 47.892+-0.821 ? 48.995+-2.995 ? might be 1.0230x slower stanford-crypto-pbkdf2 113.131+-4.454 112.259+-2.244 stanford-crypto-sha256-iterative 43.465+-1.807 ? 45.898+-3.345 ? might be 1.0560x slower <arithmetic> 90.954+-1.477 90.496+-0.787 might be 1.0051x faster TipOfTree DoubleRealUse JSRegress: abs-boolean 2.8114+-0.2897 ? 2.8145+-0.2992 ? adapt-to-double-divide 16.8920+-0.3431 ? 16.9135+-0.4199 ? aliased-arguments-getbyval 1.5129+-0.2248 1.3359+-0.0451 might be 1.1325x faster allocate-big-object 2.9823+-0.2318 2.8687+-0.0812 might be 1.0396x faster arguments-named-and-reflective 12.8610+-1.3388 12.4720+-0.4148 might be 1.0312x faster arguments-out-of-bounds 15.1156+-0.6290 14.8651+-0.3375 might be 1.0168x faster arguments-strict-mode 11.6353+-1.7941 10.8552+-0.3270 might be 1.0719x faster arguments 9.5457+-0.3407 ? 9.9382+-0.5204 ? might be 1.0411x slower arity-mismatch-inlining 0.8903+-0.0256 ? 0.9446+-0.1076 ? might be 1.0610x slower array-access-polymorphic-structure 7.0231+-0.2917 6.8479+-0.0999 might be 1.0256x faster array-nonarray-polymorhpic-access 32.5298+-0.9568 ? 33.4861+-0.7683 ? might be 1.0294x slower array-prototype-every 88.4079+-6.0190 86.5592+-1.1108 might be 1.0214x faster array-prototype-forEach 85.6392+-1.5240 ? 86.3467+-3.8160 ? array-prototype-map 90.6049+-1.7808 ? 94.0712+-4.1318 ? might be 1.0383x slower array-prototype-reduce 82.9908+-4.2836 ? 83.8667+-3.0509 ? might be 1.0106x slower array-prototype-reduceRight 85.3295+-4.9150 83.9731+-4.0075 might be 1.0162x faster array-prototype-some 86.9649+-2.0917 ? 87.4474+-1.2406 ? array-splice-contiguous 51.2373+-16.4331 44.1206+-2.2141 might be 1.1613x faster array-with-double-add 4.3380+-0.1882 4.3306+-0.1389 array-with-double-increment 3.3798+-0.1068 ? 3.5820+-0.3674 ? might be 1.0598x slower array-with-double-mul-add 5.3164+-0.2988 5.2090+-0.1939 might be 1.0206x faster array-with-double-sum 3.3680+-0.0680 ? 3.4962+-0.2408 ? might be 1.0381x slower array-with-int32-add-sub 6.8637+-0.1116 ? 7.1249+-0.3921 ? might be 1.0380x slower array-with-int32-or-double-sum 3.4480+-0.0914 ? 3.7091+-0.3780 ? might be 1.0757x slower ArrayBuffer-DataView-alloc-large-long-lived 41.8827+-10.6098 37.8267+-2.4433 might be 1.1072x faster ArrayBuffer-DataView-alloc-long-lived 15.6614+-1.7170 ? 15.8339+-1.6042 ? might be 1.0110x slower ArrayBuffer-Int32Array-byteOffset 3.9434+-0.2392 ? 4.1202+-0.5129 ? might be 1.0448x slower ArrayBuffer-Int8Array-alloc-large-long-lived 38.8276+-1.2156 ? 39.8738+-2.4821 ? might be 1.0269x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 23.7090+-1.6928 23.4332+-1.6092 might be 1.0118x faster ArrayBuffer-Int8Array-alloc-long-lived 13.5720+-0.2512 ? 15.4474+-1.7530 ? might be 1.1382x slower ArrayBuffer-Int8Array-alloc 10.7818+-0.9576 ? 11.9685+-1.8215 ? might be 1.1101x slower asmjs_bool_bug 7.7734+-0.1244 ? 7.8242+-0.1816 ? assign-custom-setter-polymorphic 3.4442+-0.3955 ? 3.6086+-0.4517 ? might be 1.0477x slower assign-custom-setter 4.4948+-0.6149 ? 4.6045+-0.1211 ? might be 1.0244x slower basic-set 9.5898+-0.2172 ? 9.7019+-0.4752 ? might be 1.0117x slower big-int-mul 4.2476+-0.0231 ? 4.2749+-0.0544 ? boolean-test 3.2785+-0.3509 3.1678+-0.0555 might be 1.0350x faster branch-fold 3.9665+-0.1242 ? 4.1718+-0.2495 ? might be 1.0518x slower branch-on-string-as-boolean 20.8798+-1.4349 ? 21.4420+-1.6542 ? might be 1.0269x slower by-val-generic 8.3175+-0.2430 8.1008+-0.2063 might be 1.0267x faster call-spread-apply 31.7943+-1.4148 30.6744+-1.2583 might be 1.0365x faster call-spread-call 28.4733+-3.2890 26.0910+-1.2132 might be 1.0913x faster captured-assignments 0.5201+-0.0411 ? 0.5244+-0.0315 ? cast-int-to-double 5.3133+-0.0640 ? 5.3871+-0.1743 ? might be 1.0139x slower cell-argument 8.8143+-0.3961 ? 8.9379+-0.5941 ? might be 1.0140x slower cfg-simplify 2.9262+-0.0997 ? 3.1070+-0.4300 ? might be 1.0618x slower chain-getter-access 9.4799+-0.2662 ? 10.3308+-2.4842 ? might be 1.0898x slower cmpeq-obj-to-obj-other 12.5308+-1.0451 12.3457+-1.2009 might be 1.0150x faster constant-test 5.1180+-0.1499 5.1128+-0.1452 create-lots-of-functions 11.9613+-0.5257 11.6611+-0.3488 might be 1.0257x faster cse-new-array-buffer 2.6289+-0.2152 2.5493+-0.0377 might be 1.0312x faster cse-new-array 2.7060+-0.1238 ? 2.7336+-0.1666 ? might be 1.0102x slower DataView-custom-properties 43.2959+-1.7895 42.8274+-1.4969 might be 1.0109x faster deconstructing-parameters-overridden-by-function 0.6073+-0.0723 ? 0.6098+-0.0724 ? delay-tear-off-arguments-strictmode 14.7008+-0.4581 ? 14.9596+-0.7625 ? might be 1.0176x slower deltablue-varargs 214.7441+-2.7793 ^ 208.2834+-2.4455 ^ definitely 1.0310x faster destructuring-arguments 17.4799+-0.2621 ? 17.7035+-1.1765 ? might be 1.0128x slower destructuring-swap 5.1204+-0.0825 ? 5.3871+-0.4405 ? might be 1.0521x slower direct-arguments-getbyval 1.3741+-0.1787 1.3575+-0.1039 might be 1.0122x faster div-boolean-double 5.2666+-0.0183 ? 5.4085+-0.1748 ? might be 1.0269x slower div-boolean 7.9165+-0.1262 ? 8.0062+-0.2171 ? might be 1.0113x slower double-get-by-val-out-of-bounds 4.7349+-0.2299 4.6386+-0.1325 might be 1.0208x faster double-pollution-getbyval 8.9498+-0.1430 ? 9.0498+-0.1603 ? might be 1.0112x slower double-pollution-putbyoffset 4.4456+-0.0673 ? 4.5197+-0.1755 ? might be 1.0166x slower double-real-use 39.1786+-1.8233 ^ 30.8531+-1.8957 ^ definitely 1.2698x faster double-to-int32-typed-array-no-inline 2.5629+-0.1765 ? 2.7885+-0.3717 ? might be 1.0880x slower double-to-int32-typed-array 2.0853+-0.1308 ? 2.1274+-0.2535 ? might be 1.0202x slower double-to-uint32-typed-array-no-inline 2.7319+-0.3297 2.7048+-0.2044 might be 1.0100x faster double-to-uint32-typed-array 2.1392+-0.1100 ? 2.2248+-0.2762 ? might be 1.0400x slower elidable-new-object-dag 44.7008+-2.3656 ? 45.1475+-2.2248 ? elidable-new-object-roflcopter 44.3101+-0.4757 ? 44.7950+-1.1877 ? might be 1.0109x slower elidable-new-object-then-call 41.0045+-2.0075 40.3546+-1.4403 might be 1.0161x faster elidable-new-object-tree 46.8196+-1.9683 46.2384+-1.3045 might be 1.0126x faster empty-string-plus-int 5.7489+-0.4892 5.6980+-0.3887 emscripten-cube2hash 39.5624+-1.8832 ? 39.7053+-2.8232 ? exit-length-on-plain-object 15.1968+-0.9972 15.0829+-1.3701 external-arguments-getbyval 1.3080+-0.0767 ? 1.3283+-0.1358 ? might be 1.0155x slower external-arguments-putbyval 2.4663+-0.0725 ? 2.5273+-0.2738 ? might be 1.0247x slower fixed-typed-array-storage-var-index 1.2515+-0.0646 ? 1.2721+-0.1496 ? might be 1.0165x slower fixed-typed-array-storage 0.9309+-0.0596 ? 1.0026+-0.2316 ? might be 1.0771x slower Float32Array-matrix-mult 4.5619+-0.1972 ? 4.6108+-0.3491 ? might be 1.0107x slower Float32Array-to-Float64Array-set 57.3800+-1.6022 ^ 53.8384+-1.2295 ^ definitely 1.0658x faster Float64Array-alloc-long-lived 86.8374+-1.3782 ? 88.6209+-2.6563 ? might be 1.0205x slower Float64Array-to-Int16Array-set 70.5072+-1.2068 70.1819+-2.0211 fold-double-to-int 14.4996+-1.4479 14.2610+-1.1076 might be 1.0167x faster fold-get-by-id-to-multi-get-by-offset-rare-int 10.5252+-0.3477 9.8842+-0.9565 might be 1.0649x faster fold-get-by-id-to-multi-get-by-offset 10.8769+-1.3505 10.2194+-0.8194 might be 1.0643x faster fold-multi-get-by-offset-to-get-by-offset 9.7946+-0.5263 ? 10.5529+-0.7976 ? might be 1.0774x slower fold-multi-get-by-offset-to-poly-get-by-offset 10.3841+-0.7463 9.4507+-0.7456 might be 1.0988x faster fold-multi-put-by-offset-to-poly-put-by-offset 10.3845+-0.7569 ? 10.6707+-1.3360 ? might be 1.0276x slower fold-multi-put-by-offset-to-put-by-offset 7.6596+-0.4136 6.1729+-1.2491 might be 1.2408x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 10.1639+-0.4948 ? 10.3641+-0.9431 ? might be 1.0197x slower fold-put-by-id-to-multi-put-by-offset 10.8777+-1.3103 10.1400+-0.7171 might be 1.0728x faster fold-put-structure 6.8127+-1.6188 ? 8.1930+-0.9459 ? might be 1.2026x slower for-of-iterate-array-entries 4.7464+-0.2574 4.6472+-0.1876 might be 1.0213x faster for-of-iterate-array-keys 4.0723+-0.2996 3.9709+-0.4581 might be 1.0255x faster for-of-iterate-array-values 3.7769+-0.2057 3.6478+-0.1476 might be 1.0354x faster fround 21.3029+-1.2740 20.8685+-0.5585 might be 1.0208x faster ftl-library-inlining-dataview 64.6773+-1.0438 ? 66.2338+-1.7576 ? might be 1.0241x slower ftl-library-inlining 75.7161+-18.2590 ? 76.7194+-14.5666 ? might be 1.0133x slower function-dot-apply 2.3244+-0.1769 ? 2.3845+-0.2273 ? might be 1.0259x slower function-test 2.9386+-0.0986 ? 3.1374+-0.4538 ? might be 1.0676x slower function-with-eval 105.0135+-4.8879 ? 105.1054+-4.5495 ? gcse-poly-get-less-obvious 18.0062+-0.3045 ? 19.2136+-1.4151 ? might be 1.0671x slower gcse-poly-get 21.7950+-1.2984 20.8569+-2.3297 might be 1.0450x faster gcse 4.5926+-0.3118 4.5278+-0.3258 might be 1.0143x faster get-by-id-bimorphic-check-structure-elimination-simple 2.7787+-0.0358 ? 2.8595+-0.0911 ? might be 1.0291x slower get-by-id-bimorphic-check-structure-elimination 6.2432+-0.2184 ? 6.3842+-0.3752 ? might be 1.0226x slower get-by-id-chain-from-try-block 6.8829+-0.7322 6.7402+-0.2689 might be 1.0212x faster get-by-id-check-structure-elimination 5.2436+-0.1873 ? 5.4378+-0.6713 ? might be 1.0370x slower get-by-id-proto-or-self 19.5225+-2.1985 19.0816+-1.3728 might be 1.0231x faster get-by-id-quadmorphic-check-structure-elimination-simple 3.1508+-0.1719 ? 3.1845+-0.3532 ? might be 1.0107x slower get-by-id-self-or-proto 19.3795+-1.6346 19.3105+-2.0013 get-by-val-out-of-bounds 4.5187+-0.0898 4.5018+-0.1283 get_callee_monomorphic 3.1096+-0.3292 ? 3.1187+-0.2847 ? get_callee_polymorphic 3.8514+-0.1523 ? 3.8957+-0.3576 ? might be 1.0115x slower getter-no-activation 5.1573+-0.2709 ? 5.1873+-0.2737 ? getter-prototype 15.5717+-1.4198 15.4470+-0.8811 getter-richards 122.4377+-6.3844 ? 127.9659+-11.7732 ? might be 1.0452x slower getter 5.8061+-0.7873 ? 6.5084+-0.8060 ? might be 1.1210x slower global-var-const-infer-fire-from-opt 0.9237+-0.0748 ? 0.9508+-0.0335 ? might be 1.0292x slower global-var-const-infer 1.0044+-0.2326 0.9635+-0.1915 might be 1.0424x faster HashMap-put-get-iterate-keys 31.9761+-2.3091 30.5245+-3.2805 might be 1.0476x faster HashMap-put-get-iterate 33.8839+-1.6019 32.6040+-0.7785 might be 1.0393x faster HashMap-string-put-get-iterate 32.9646+-1.3268 ? 33.0186+-2.2479 ? hoist-make-rope 13.2138+-0.5259 ^ 11.7207+-0.3643 ^ definitely 1.1274x faster hoist-poly-check-structure-effectful-loop 5.1246+-0.0401 5.1134+-0.1054 hoist-poly-check-structure 3.7417+-0.0490 ? 3.7914+-0.0514 ? might be 1.0133x slower imul-double-only 8.9388+-0.6346 ? 9.0351+-0.6244 ? might be 1.0108x slower imul-int-only 10.1606+-1.0664 10.0148+-0.6802 might be 1.0146x faster imul-mixed 8.3631+-0.8105 ? 8.8562+-1.4634 ? might be 1.0590x slower in-four-cases 22.4516+-0.2337 ? 24.4944+-4.0805 ? might be 1.0910x slower in-one-case-false 11.1368+-0.1508 ? 12.2178+-1.5564 ? might be 1.0971x slower in-one-case-true 11.2594+-0.4072 ? 11.2805+-0.3854 ? in-two-cases 11.6828+-0.1881 11.6370+-0.0706 indexed-properties-in-objects 3.0941+-0.3590 2.9584+-0.0428 might be 1.0459x faster infer-closure-const-then-mov-no-inline 4.2793+-0.3960 4.0385+-0.1232 might be 1.0596x faster infer-closure-const-then-mov 19.8404+-0.3855 ? 20.0677+-0.3620 ? might be 1.0115x slower infer-closure-const-then-put-to-scope-no-inline 13.4953+-1.0339 13.0972+-0.7097 might be 1.0304x faster infer-closure-const-then-put-to-scope 22.2641+-1.1405 ? 23.1667+-1.6480 ? might be 1.0405x slower infer-closure-const-then-reenter-no-inline 54.4719+-0.5209 ? 56.2917+-2.8050 ? might be 1.0334x slower infer-closure-const-then-reenter 23.5198+-1.4825 22.5830+-0.9684 might be 1.0415x faster infer-constant-global-property 3.6351+-0.1083 3.6045+-0.0644 infer-constant-property 2.7953+-0.0392 ? 2.8058+-0.1099 ? infer-one-time-closure-ten-vars 13.1030+-0.9390 12.7433+-0.8129 might be 1.0282x faster infer-one-time-closure-two-vars 12.1914+-0.3297 12.0424+-0.3273 might be 1.0124x faster infer-one-time-closure 12.1316+-0.2544 ? 12.4941+-0.9584 ? might be 1.0299x slower infer-one-time-deep-closure 21.2563+-1.2864 ? 22.1341+-1.7041 ? might be 1.0413x slower inline-arguments-access 4.8317+-0.4726 4.6950+-0.2604 might be 1.0291x faster inline-arguments-aliased-access 4.6918+-0.0734 ? 4.8013+-0.2213 ? might be 1.0233x slower inline-arguments-local-escape 4.9218+-0.3120 4.7498+-0.1426 might be 1.0362x faster inline-get-scoped-var 5.0800+-0.2111 ? 5.1424+-0.3498 ? might be 1.0123x slower inlined-put-by-id-transition 12.0632+-1.0561 11.8208+-0.4582 might be 1.0205x faster int-or-other-abs-then-get-by-val 5.0432+-0.0761 ? 5.1066+-0.1840 ? might be 1.0126x slower int-or-other-abs-zero-then-get-by-val 17.4413+-0.4036 ? 18.5194+-1.3740 ? might be 1.0618x slower int-or-other-add-then-get-by-val 4.4347+-0.0825 ? 4.5955+-0.3175 ? might be 1.0363x slower int-or-other-add 5.3702+-0.0278 ? 5.8728+-0.9776 ? might be 1.0936x slower int-or-other-div-then-get-by-val 4.3114+-0.0669 ? 4.3470+-0.1079 ? int-or-other-max-then-get-by-val 4.5511+-0.2799 4.3501+-0.0323 might be 1.0462x faster int-or-other-min-then-get-by-val 4.5540+-0.3184 ? 4.5587+-0.3321 ? int-or-other-mod-then-get-by-val 3.9918+-0.0814 ? 4.2338+-0.2763 ? might be 1.0606x slower int-or-other-mul-then-get-by-val 4.0608+-0.1752 4.0204+-0.1237 might be 1.0100x faster int-or-other-neg-then-get-by-val 5.0430+-0.2364 4.8081+-0.0107 might be 1.0489x faster int-or-other-neg-zero-then-get-by-val 17.6216+-0.2645 ? 17.9727+-0.3929 ? might be 1.0199x slower int-or-other-sub-then-get-by-val 4.4516+-0.0919 ? 4.5013+-0.2086 ? might be 1.0112x slower int-or-other-sub 3.7262+-0.1549 ? 3.7862+-0.3329 ? might be 1.0161x slower int-overflow-local 4.6991+-0.1066 ? 5.2985+-1.8016 ? might be 1.1275x slower Int16Array-alloc-long-lived 53.2579+-1.2255 ? 53.4637+-1.4634 ? Int16Array-bubble-sort-with-byteLength 20.8310+-1.3066 20.3810+-0.1387 might be 1.0221x faster Int16Array-bubble-sort 20.9899+-1.5208 ? 21.4960+-0.4231 ? might be 1.0241x slower Int16Array-load-int-mul 1.5481+-0.0248 ? 1.5492+-0.0581 ? Int16Array-to-Int32Array-set 58.5953+-2.1180 ! 87.0462+-2.0388 ! definitely 1.4855x slower Int32Array-alloc-large 24.0928+-0.7134 23.7636+-0.8337 might be 1.0139x faster Int32Array-alloc-long-lived 64.6822+-1.2487 63.9060+-1.4974 might be 1.0121x faster Int32Array-alloc 3.4528+-0.1495 ? 3.5756+-0.2745 ? might be 1.0356x slower Int32Array-Int8Array-view-alloc 7.3626+-0.9694 6.6453+-0.1471 might be 1.1079x faster int52-spill 5.8572+-0.0881 ! 6.6057+-0.2007 ! definitely 1.1278x slower Int8Array-alloc-long-lived 47.5931+-0.9026 ? 47.8157+-1.1874 ? Int8Array-load-with-byteLength 3.4464+-0.0892 3.4091+-0.0603 might be 1.0109x faster Int8Array-load 3.4590+-0.0989 ? 3.5804+-0.4295 ? might be 1.0351x slower integer-divide 11.1394+-0.2960 10.9485+-0.1081 might be 1.0174x faster integer-modulo 2.1705+-0.1468 2.1366+-0.1366 might be 1.0158x faster is-boolean-fold-tricky 4.5005+-0.0733 ? 4.7784+-0.2219 ? might be 1.0618x slower is-boolean-fold 2.9912+-0.2254 2.9220+-0.0554 might be 1.0237x faster is-function-fold-tricky-internal-function 11.9466+-0.1336 ? 12.4842+-0.9593 ? might be 1.0450x slower is-function-fold-tricky 4.6517+-0.1944 4.6147+-0.0594 is-function-fold 2.9396+-0.0610 ? 2.9736+-0.0606 ? might be 1.0116x slower is-number-fold-tricky 4.4688+-0.0638 ? 4.7042+-0.3811 ? might be 1.0527x slower is-number-fold 2.9264+-0.1368 ? 3.1362+-0.3365 ? might be 1.0717x slower is-object-or-null-fold-functions 2.9731+-0.0263 ? 3.0087+-0.0577 ? might be 1.0120x slower is-object-or-null-fold-less-tricky 4.9979+-0.5992 4.6989+-0.2243 might be 1.0636x faster is-object-or-null-fold-tricky 6.7910+-0.2055 6.7454+-0.1395 is-object-or-null-fold 2.9794+-0.1718 2.9431+-0.0445 might be 1.0123x faster is-object-or-null-trickier-function 4.7193+-0.2030 ? 4.7338+-0.1885 ? is-object-or-null-trickier-internal-function 13.0205+-1.1077 12.7615+-0.1580 might be 1.0203x faster is-object-or-null-tricky-function 4.7392+-0.1004 ? 4.7966+-0.3045 ? might be 1.0121x slower is-object-or-null-tricky-internal-function 9.5158+-0.1467 9.3372+-0.1174 might be 1.0191x faster is-string-fold-tricky 4.6525+-0.2771 4.5609+-0.0529 might be 1.0201x faster is-string-fold 2.9078+-0.0969 ? 3.1592+-0.3217 ? might be 1.0865x slower is-undefined-fold-tricky 3.9989+-0.4170 3.8263+-0.0715 might be 1.0451x faster is-undefined-fold 3.0665+-0.4244 3.0613+-0.3426 large-int-captured 4.7270+-0.0664 ? 5.0343+-0.3677 ? might be 1.0650x slower large-int-neg 16.1226+-0.1969 ? 18.4455+-5.2215 ? might be 1.1441x slower large-int 15.6311+-1.3657 14.6141+-0.2640 might be 1.0696x faster load-varargs-elimination 22.8688+-0.2632 ? 23.5152+-0.7849 ? might be 1.0283x slower logical-not-weird-types 3.3622+-0.0416 ? 3.3722+-0.1416 ? logical-not 4.6353+-0.0490 4.5875+-0.0528 might be 1.0104x faster lots-of-fields 12.6048+-0.3528 12.4803+-0.2305 make-indexed-storage 3.3081+-0.1141 3.2760+-0.0847 make-rope-cse 11.8657+-1.2716 11.5791+-0.9861 might be 1.0248x faster marsaglia-larger-ints 36.6383+-0.9094 ? 36.9322+-0.8724 ? marsaglia-osr-entry 24.8483+-3.2181 24.1886+-1.6482 might be 1.0273x faster math-with-out-of-bounds-array-values 24.6324+-0.2971 ? 25.6852+-1.9280 ? might be 1.0427x slower max-boolean 2.6772+-0.2922 2.6512+-0.3039 method-on-number 18.3747+-1.3804 17.7392+-0.7767 might be 1.0358x faster min-boolean 2.6519+-0.0752 2.6467+-0.2027 minus-boolean-double 3.3043+-0.1456 ? 3.3566+-0.2622 ? might be 1.0158x slower minus-boolean 2.5179+-0.2882 2.4880+-0.1529 might be 1.0120x faster misc-strict-eq 40.1883+-3.4439 39.7957+-2.0677 mod-boolean-double 11.0357+-0.2610 ? 11.2461+-0.4919 ? might be 1.0191x slower mod-boolean 8.0228+-0.2189 7.9757+-0.2379 mul-boolean-double 3.9513+-0.2687 3.8156+-0.0636 might be 1.0356x faster mul-boolean 3.0155+-0.0862 2.9323+-0.0505 might be 1.0283x faster neg-boolean 3.3316+-0.1652 3.2722+-0.1184 might be 1.0182x faster negative-zero-divide 0.4189+-0.0607 0.4084+-0.0371 might be 1.0256x faster negative-zero-modulo 0.3932+-0.0140 ? 0.4098+-0.0553 ? might be 1.0422x slower negative-zero-negate 0.3679+-0.0204 ? 0.3810+-0.0613 ? might be 1.0356x slower nested-function-parsing 40.9829+-2.8663 39.7147+-1.4549 might be 1.0319x faster new-array-buffer-dead 116.5228+-3.5705 114.8875+-3.6648 might be 1.0142x faster new-array-buffer-push 7.1389+-0.5711 ? 7.2685+-0.3968 ? might be 1.0182x slower new-array-dead 19.8783+-0.7806 19.4840+-0.4646 might be 1.0202x faster new-array-push 6.4842+-0.1715 ? 7.0729+-1.0964 ? might be 1.0908x slower no-inline-constructor 41.1329+-1.1680 ? 42.3153+-1.4673 ? might be 1.0287x slower number-test 3.3175+-0.3128 3.1242+-0.0769 might be 1.0619x faster object-closure-call 6.6723+-2.4675 ? 6.9599+-2.8078 ? might be 1.0431x slower object-test 2.9133+-0.0602 ? 3.0579+-0.2771 ? might be 1.0496x slower obvious-sink-pathology-taken 146.2438+-7.2540 145.1579+-7.3554 obvious-sink-pathology 133.9435+-2.6962 ? 134.6573+-6.6222 ? obviously-elidable-new-object 36.4064+-2.0877 35.3983+-1.4125 might be 1.0285x faster plus-boolean-arith 2.5663+-0.0334 ? 2.7342+-0.3410 ? might be 1.0654x slower plus-boolean-double 3.2665+-0.0768 ? 3.3694+-0.3092 ? might be 1.0315x slower plus-boolean 2.6465+-0.2831 2.5819+-0.2684 might be 1.0250x faster poly-chain-access-different-prototypes-simple 3.3791+-0.1125 ? 3.4765+-0.2635 ? might be 1.0288x slower poly-chain-access-different-prototypes 2.8866+-0.3795 2.6135+-0.0316 might be 1.1045x faster poly-chain-access-simpler 3.4803+-0.3513 ? 3.5109+-0.2623 ? poly-chain-access 2.6293+-0.0338 ? 2.6722+-0.0678 ? might be 1.0163x slower poly-stricteq 62.3378+-4.2474 61.3070+-2.8681 might be 1.0168x faster polymorphic-array-call 1.5722+-0.2331 ? 1.5788+-0.1851 ? polymorphic-get-by-id 3.3204+-0.2173 ? 3.3369+-0.2809 ? polymorphic-put-by-id 30.4176+-2.0487 ? 33.5857+-3.0898 ? might be 1.1042x slower polymorphic-structure 15.7642+-1.6749 ? 16.1063+-1.3548 ? might be 1.0217x slower polyvariant-monomorphic-get-by-id 8.8915+-0.7234 8.8010+-0.2973 might be 1.0103x faster proto-getter-access 9.2603+-0.1010 ? 9.4116+-0.1047 ? might be 1.0163x slower put-by-id-replace-and-transition 9.9561+-0.2371 ? 10.0173+-0.5196 ? put-by-id-slightly-polymorphic 3.0058+-0.3558 2.8665+-0.0209 might be 1.0486x faster put-by-id 13.1625+-0.7817 13.1198+-0.5997 put-by-val-direct 0.3978+-0.0234 ? 0.4090+-0.0201 ? might be 1.0281x slower put-by-val-large-index-blank-indexing-type 12.5117+-0.8008 ? 12.5155+-1.1926 ? put-by-val-machine-int 2.8490+-0.0573 ? 2.8655+-0.0459 ? rare-osr-exit-on-local 15.4760+-0.7914 ? 15.6964+-0.9254 ? might be 1.0142x slower register-pressure-from-osr 21.8500+-1.1353 21.4581+-0.2381 might be 1.0183x faster repeat-multi-get-by-offset 26.2705+-1.5164 25.5339+-1.5595 might be 1.0289x faster setter-prototype 10.3936+-0.0765 ? 10.6021+-0.2289 ? might be 1.0201x slower setter 6.4727+-1.1381 6.1420+-0.9220 might be 1.0538x faster simple-activation-demo 25.4780+-0.7757 ? 25.4843+-0.6526 ? simple-getter-access 12.0555+-0.5549 ? 12.1281+-0.5233 ? simple-poly-call-nested 8.4959+-0.4501 ? 8.5973+-0.5802 ? might be 1.0119x slower simple-poly-call 1.4036+-0.1996 ? 1.4580+-0.1725 ? might be 1.0388x slower sin-boolean 23.0189+-1.2927 ? 23.5117+-1.2151 ? might be 1.0214x slower singleton-scope 62.2816+-0.5644 ? 64.3267+-3.4082 ? might be 1.0328x slower sink-function 12.2345+-0.2793 ? 12.4375+-0.5234 ? might be 1.0166x slower sink-huge-activation 19.5452+-0.6955 19.4954+-1.6026 sinkable-new-object-dag 71.8970+-2.4000 ? 72.1729+-3.1456 ? sinkable-new-object-taken 53.4487+-4.3083 ? 53.4896+-3.7812 ? sinkable-new-object 41.0754+-1.8944 39.8442+-1.5570 might be 1.0309x faster slow-array-profile-convergence 2.9406+-0.1362 ? 3.1369+-0.4300 ? might be 1.0668x slower slow-convergence 2.7920+-0.1450 ? 3.1395+-0.4592 ? might be 1.1245x slower slow-ternaries 19.6669+-2.5399 ? 21.3606+-2.3525 ? might be 1.0861x slower sorting-benchmark 18.8436+-0.4924 18.7901+-0.2727 sparse-conditional 1.2684+-0.1808 1.2070+-0.0547 might be 1.0508x faster splice-to-remove 16.1900+-1.7071 16.1652+-1.9601 string-char-code-at 16.5265+-0.5441 ? 16.8091+-1.4586 ? might be 1.0171x slower string-concat-object 2.7056+-0.1068 ? 2.7931+-0.2133 ? might be 1.0323x slower string-concat-pair-object 2.7020+-0.1053 2.6384+-0.1148 might be 1.0241x faster string-concat-pair-simple 12.8510+-1.6452 12.1397+-0.5975 might be 1.0586x faster string-concat-simple 13.2045+-1.2903 12.7945+-1.2119 might be 1.0320x faster string-cons-repeat 8.9475+-1.0274 ? 9.0047+-1.2322 ? string-cons-tower 8.7348+-0.4938 ? 8.9245+-1.0792 ? might be 1.0217x slower string-equality 18.0052+-0.7431 ? 18.1871+-0.8178 ? might be 1.0101x slower string-get-by-val-big-char 7.9296+-1.5597 7.2378+-0.0583 might be 1.0956x faster string-get-by-val-out-of-bounds-insane 3.7111+-0.2049 3.6165+-0.0799 might be 1.0262x faster string-get-by-val-out-of-bounds 5.6405+-0.1309 5.6151+-0.1039 string-get-by-val 3.4892+-0.3435 ? 3.8206+-1.1454 ? might be 1.0950x slower string-hash 2.3642+-0.3967 2.2887+-0.2090 might be 1.0330x faster string-long-ident-equality 14.8783+-0.2863 14.7138+-0.2758 might be 1.0112x faster string-out-of-bounds 15.2030+-0.6894 ? 15.5404+-1.4605 ? might be 1.0222x slower string-repeat-arith 35.2340+-1.8705 34.7127+-2.2871 might be 1.0150x faster string-sub 67.1257+-1.4318 66.4390+-4.4738 might be 1.0103x faster string-test 3.0470+-0.1627 ? 3.1121+-0.1076 ? might be 1.0214x slower string-var-equality 32.1891+-0.4765 ? 33.4429+-1.2621 ? might be 1.0389x slower structure-hoist-over-transitions 2.8652+-0.2707 2.8005+-0.2231 might be 1.0231x faster substring-concat-weird 40.4087+-0.3936 ? 41.3549+-1.5362 ? might be 1.0234x slower substring-concat 43.0608+-0.6943 42.7293+-0.7460 substring 45.5489+-0.5227 ? 48.1099+-4.1626 ? might be 1.0562x slower switch-char-constant 3.1151+-0.4200 3.0975+-0.4064 switch-char 7.7828+-2.8346 ? 7.7878+-2.7107 ? switch-constant 8.7140+-0.6519 8.4566+-0.1854 might be 1.0304x faster switch-string-basic-big-var 18.3619+-0.2243 ? 18.8311+-0.3725 ? might be 1.0256x slower switch-string-basic-big 14.8380+-0.2850 ? 15.7090+-1.1136 ? might be 1.0587x slower switch-string-basic-var 15.4687+-0.5082 15.2678+-0.3530 might be 1.0132x faster switch-string-basic 13.5540+-0.2108 ? 13.6899+-0.2105 ? might be 1.0100x slower switch-string-big-length-tower-var 20.9254+-1.1904 ? 21.0904+-1.1275 ? switch-string-length-tower-var 15.8864+-0.3595 ? 16.3394+-0.7493 ? might be 1.0285x slower switch-string-length-tower 13.3218+-0.1852 13.1422+-0.1413 might be 1.0137x faster switch-string-short 13.4403+-0.6141 13.2874+-0.3013 might be 1.0115x faster switch 12.7922+-0.2465 12.7230+-0.1607 tear-off-arguments-simple 3.6452+-0.1268 ? 3.8313+-0.4198 ? might be 1.0510x slower tear-off-arguments 5.2900+-0.7428 4.8188+-0.0460 might be 1.0978x faster temporal-structure 12.2795+-0.4360 ? 12.3909+-0.3273 ? to-int32-boolean 14.1243+-1.1032 ? 14.4255+-0.5901 ? might be 1.0213x slower try-catch-get-by-val-cloned-arguments 15.5437+-1.2737 15.3269+-1.4182 might be 1.0141x faster try-catch-get-by-val-direct-arguments 6.8077+-0.1795 ? 7.3624+-1.2003 ? might be 1.0815x slower try-catch-get-by-val-scoped-arguments 8.2208+-1.1171 7.8603+-0.4170 might be 1.0459x faster typed-array-get-set-by-val-profiling 33.1695+-1.3411 ? 33.5614+-2.2356 ? might be 1.0118x slower undefined-property-access 344.8654+-6.1666 ? 345.0793+-5.0147 ? undefined-test 3.1023+-0.0744 ? 3.2363+-0.3026 ? might be 1.0432x slower unprofiled-licm 23.5878+-1.6899 23.3000+-0.8779 might be 1.0124x faster varargs-call 14.9572+-0.2133 ? 15.4218+-0.6636 ? might be 1.0311x slower varargs-construct-inline 28.0513+-0.4670 ? 28.5467+-1.0283 ? might be 1.0177x slower varargs-construct 23.1161+-0.9771 22.9963+-0.6595 varargs-inline 9.4993+-0.2461 ? 9.7183+-0.4031 ? might be 1.0231x slower varargs-strict-mode 10.3865+-0.4436 10.3680+-0.6278 varargs 10.2161+-0.3311 10.1215+-0.1238 weird-inlining-const-prop 3.4757+-0.2676 3.3995+-0.3688 might be 1.0224x faster <geometric> 9.0072+-0.0414 ? 9.0500+-0.0258 ? might be 1.0047x slower TipOfTree DoubleRealUse AsmBench: bigfib.cpp 527.3094+-43.0637 500.3729+-0.9951 might be 1.0538x faster cray.c 434.0237+-5.9763 427.9939+-4.5663 might be 1.0141x faster dry.c 489.8357+-6.7331 ? 497.7663+-29.8481 ? might be 1.0162x slower FloatMM.c 733.1705+-12.7840 ? 744.6158+-36.3405 ? might be 1.0156x slower gcc-loops.cpp 4298.8606+-33.0480 ? 4379.6672+-235.0977 ? might be 1.0188x slower n-body.c 1027.0808+-74.1027 1005.6156+-51.8324 might be 1.0213x faster Quicksort.c 429.9165+-21.9303 421.4313+-5.3643 might be 1.0201x faster stepanov_container.cpp 3629.3052+-12.1689 ? 3648.4669+-21.5411 ? Towers.c 265.9443+-7.6005 265.3615+-9.2464 <geometric> 809.8567+-14.0131 805.0211+-5.7733 might be 1.0060x faster TipOfTree DoubleRealUse CompressionBench: huffman 379.4922+-13.7496 ? 380.0467+-2.1474 ? arithmetic-simple 371.0971+-6.6682 370.0134+-3.8310 arithmetic-precise 283.1228+-3.1358 ? 285.7389+-10.3425 ? arithmetic-complex-precise 288.9532+-6.6155 283.2126+-3.6934 might be 1.0203x faster arithmetic-precise-order-0 390.1610+-19.3233 380.7223+-5.7522 might be 1.0248x faster arithmetic-precise-order-1 335.6155+-5.8232 332.9047+-5.6272 arithmetic-precise-order-2 371.9170+-7.0694 ? 374.6683+-14.0849 ? arithmetic-simple-order-1 446.9975+-34.3723 425.2524+-3.4415 might be 1.0511x faster arithmetic-simple-order-2 478.2733+-9.3357 ? 489.0075+-38.7198 ? might be 1.0224x slower lz-string 314.5315+-5.5190 ? 326.9615+-18.4241 ? might be 1.0395x slower <geometric> 360.9749+-1.4394 360.0230+-3.7051 might be 1.0026x faster TipOfTree DoubleRealUse Geomean of preferred means: <scaled-result> 63.4921+-0.2623 ^ 62.9351+-0.2809 ^ definitely 1.0089x faster
Created attachment 254252 [details] the best approach
Attachment 254252 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2099: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Total errors found: 1 in 16 files If any of these errors are false positives, please file a bug against check-webkit-style.
(In reply to comment #6) > Attachment 254252 [details] did not pass style-queue: > > > ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2099: When wrapping > a line, only indent 4 spaces. [whitespace/indent] [3] > Total errors found: 1 in 16 files > > > If any of these errors are false positives, please file a bug against > check-webkit-style. Fixed.
Comment on attachment 254252 [details] the best approach r=me
Landed in http://trac.webkit.org/changeset/185216
Re-opened since this is blocked by bug 145666
(In reply to comment #10) > Re-opened since this is blocked by bug 145666 Looks like it was an incorrect JIT assertion. Removing the assertion is the right fix. I'll reland shortly.
Created attachment 254338 [details] patch for relanding
Relanded in http://trac.webkit.org/changeset/185239