Summary: | FTL should use AI more | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | barraclough, benjamin, ggaren, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, saam, sam | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | All | ||||||
OS: | All | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 144396 | ||||||
Attachments: |
|
Description
Filip Pizlo
2015-05-01 14:25:07 PDT
Created attachment 252170 [details]
the patch
Still testing.
Comment on attachment 252170 [details]
the patch
Tests look good.
r=me Perf results: Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on dethklok (MacBookPro9,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r183690) "MoreFTLAI" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r183690) 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 MoreFTLAI SunSpider: 3d-cube 5.2133+-0.0795 5.1772+-0.2274 3d-morph 5.9275+-0.4923 5.6884+-0.0466 might be 1.0420x faster 3d-raytrace 6.6423+-0.2193 ? 6.7980+-0.3876 ? might be 1.0234x slower access-binary-trees 2.3872+-0.2838 ? 2.4725+-0.2796 ? might be 1.0357x slower access-fannkuch 5.9384+-0.0584 ? 6.0561+-0.0600 ? might be 1.0198x slower access-nbody 2.9783+-0.1081 ? 3.0376+-0.3555 ? might be 1.0199x slower access-nsieve 3.7810+-0.5797 3.5013+-0.1663 might be 1.0799x faster bitops-3bit-bits-in-byte 1.5973+-0.0929 1.5848+-0.0317 bitops-bits-in-byte 3.4451+-0.1167 3.4295+-0.2379 bitops-bitwise-and 2.3495+-0.2814 ? 2.4855+-0.4972 ? might be 1.0579x slower bitops-nsieve-bits 3.3498+-0.0578 3.1578+-0.1384 might be 1.0608x faster controlflow-recursive 2.3274+-0.0884 ? 2.3531+-0.1674 ? might be 1.0110x slower crypto-aes 4.5859+-0.3922 4.4660+-0.2107 might be 1.0268x faster crypto-md5 2.7709+-0.1175 2.7414+-0.0646 might be 1.0108x faster crypto-sha1 2.7829+-0.4133 ? 2.8441+-0.1949 ? might be 1.0220x slower date-format-tofte 9.3397+-0.0997 9.3347+-0.1660 date-format-xparb 6.0081+-0.3723 5.8291+-0.1357 might be 1.0307x faster math-cordic 3.0940+-0.0600 ? 3.2202+-0.1216 ? might be 1.0408x slower math-partial-sums 5.3037+-0.2894 5.1355+-0.0823 might be 1.0328x faster math-spectral-norm 1.9854+-0.1007 1.9729+-0.0455 regexp-dna 7.4698+-0.6942 ? 7.6868+-1.2284 ? might be 1.0290x slower string-base64 4.6440+-0.0848 ? 4.8016+-0.2038 ? might be 1.0339x slower string-fasta 7.1996+-0.7634 6.6023+-0.0712 might be 1.0905x faster string-tagcloud 10.1591+-0.8704 9.8838+-0.4434 might be 1.0279x faster string-unpack-code 19.6481+-0.5739 ? 19.8948+-0.4623 ? might be 1.0126x slower string-validate-input 5.1004+-0.3996 4.9414+-0.1250 might be 1.0322x faster <arithmetic> 5.2319+-0.0505 5.1960+-0.1120 might be 1.0069x faster TipOfTree MoreFTLAI LongSpider: 3d-cube 880.3380+-3.7383 879.7421+-7.3005 3d-morph 1537.0615+-11.5951 1527.0977+-3.3197 3d-raytrace 736.6251+-5.5384 ? 738.2175+-7.9744 ? access-binary-trees 1031.0794+-6.4369 1030.2230+-9.3079 access-fannkuch 333.2329+-7.7392 331.3734+-8.7112 access-nbody 614.2570+-8.4289 611.4084+-3.8249 access-nsieve 889.4714+-52.2526 867.1235+-15.0022 might be 1.0258x faster bitops-3bit-bits-in-byte 45.0355+-1.0570 44.0007+-0.5216 might be 1.0235x faster bitops-bits-in-byte 102.8556+-1.7012 101.5980+-1.7503 might be 1.0124x faster bitops-nsieve-bits 619.1204+-7.2095 ? 620.4943+-8.5617 ? controlflow-recursive 485.2850+-4.8206 ^ 477.7298+-0.5814 ^ definitely 1.0158x faster crypto-aes 740.9060+-89.0383 705.5165+-11.0669 might be 1.0502x faster crypto-md5 522.5791+-13.4974 521.9200+-3.3580 crypto-sha1 604.1404+-4.8704 ^ 596.2706+-2.5012 ^ definitely 1.0132x faster date-format-tofte 751.5618+-15.0732 ? 763.1029+-17.7852 ? might be 1.0154x slower date-format-xparb 776.3487+-26.4682 ? 788.3760+-15.0947 ? might be 1.0155x slower math-cordic 595.5014+-6.3360 590.3419+-0.8924 math-partial-sums 506.9176+-3.7763 ? 508.3313+-7.9377 ? math-spectral-norm 563.1100+-0.6215 ? 563.7069+-0.8838 ? string-base64 380.5107+-3.2877 380.0783+-4.9997 string-fasta 445.1062+-8.9908 436.7726+-6.8359 might be 1.0191x faster string-tagcloud 198.3724+-1.7980 ? 199.5186+-2.0562 ? <geometric> 496.1875+-3.8930 493.1226+-1.4937 might be 1.0062x faster TipOfTree MoreFTLAI V8Spider: crypto 56.7966+-2.7121 ? 57.5188+-1.3782 ? might be 1.0127x slower deltablue 96.8408+-5.9147 95.7688+-3.5300 might be 1.0112x faster earley-boyer 45.6005+-1.1738 44.7037+-1.8691 might be 1.0201x faster raytrace 41.6544+-1.4062 40.6227+-2.1933 might be 1.0254x faster regexp 80.5423+-2.8199 ? 83.6920+-1.7095 ? might be 1.0391x slower richards 79.7606+-1.8978 ? 80.7830+-1.2605 ? might be 1.0128x slower splay 39.7906+-2.1261 ? 40.3687+-2.4673 ? might be 1.0145x slower <geometric> 59.5646+-1.0245 ? 59.7517+-0.3412 ? might be 1.0031x slower TipOfTree MoreFTLAI Octane: encrypt 0.20240+-0.00085 ? 0.20334+-0.00162 ? decrypt 3.61096+-0.05194 3.59739+-0.05911 deltablue x2 0.20848+-0.00173 0.20837+-0.00154 earley 0.53948+-0.00416 0.53818+-0.00454 boyer 6.75936+-0.04303 ? 6.77409+-0.10176 ? navier-stokes x2 5.22688+-0.07516 5.18956+-0.04771 raytrace x2 1.27678+-0.04240 1.26585+-0.03956 richards x2 0.12307+-0.00153 ? 0.12385+-0.00302 ? splay x2 0.40720+-0.00566 0.40436+-0.00269 regexp x2 31.57328+-0.27195 ? 31.72521+-0.39563 ? pdfjs x2 43.68045+-0.38045 43.63777+-0.57114 mandreel x2 50.48890+-0.25868 ? 50.67894+-1.11515 ? gbemu x2 42.47940+-2.77590 41.96119+-0.46707 might be 1.0123x faster closure 0.56569+-0.00392 ? 0.56840+-0.00698 ? jquery 7.22325+-0.08612 7.16136+-0.04874 box2d x2 12.33748+-0.18167 12.29050+-0.16227 zlib x2 382.59528+-18.67880 ? 391.42424+-15.02485 ? might be 1.0231x slower typescript x2 844.90592+-7.18286 837.30575+-8.59770 <geometric> 6.74248+-0.04577 6.73716+-0.03208 might be 1.0008x faster TipOfTree MoreFTLAI Kraken: ai-astar 271.647+-3.214 271.308+-2.494 audio-beat-detection 107.367+-0.844 107.258+-0.547 audio-dft 151.540+-5.090 151.117+-3.870 audio-fft 85.544+-4.676 80.863+-1.802 might be 1.0579x faster audio-oscillator 208.194+-3.894 ? 210.586+-3.945 ? might be 1.0115x slower imaging-darkroom 104.178+-1.281 ! 107.158+-0.736 ! definitely 1.0286x slower imaging-desaturate 63.246+-1.675 ? 65.293+-1.886 ? might be 1.0324x slower imaging-gaussian-blur 125.636+-33.479 111.453+-1.102 might be 1.1273x faster json-parse-financial 48.377+-2.673 46.781+-2.067 might be 1.0341x faster json-stringify-tinderbox 56.944+-1.800 56.677+-1.399 stanford-crypto-aes 58.800+-0.756 ? 59.095+-0.514 ? stanford-crypto-ccm 60.199+-1.862 ? 60.907+-1.855 ? might be 1.0118x slower stanford-crypto-pbkdf2 138.244+-2.469 ? 138.421+-1.550 ? stanford-crypto-sha256-iterative 52.972+-1.834 52.677+-1.552 <arithmetic> 109.492+-2.594 108.543+-0.380 might be 1.0087x faster TipOfTree MoreFTLAI JSRegress: abs-boolean 2.6532+-0.0689 ? 2.6987+-0.1037 ? might be 1.0172x slower adapt-to-double-divide 16.7131+-0.3753 ? 17.1041+-0.6751 ? might be 1.0234x slower aliased-arguments-getbyval 1.2282+-0.0873 ? 1.3534+-0.2456 ? might be 1.1019x slower allocate-big-object 3.0398+-0.2851 3.0078+-0.3075 might be 1.0106x faster arguments-named-and-reflective 13.2784+-1.6006 13.1526+-1.5246 arguments-out-of-bounds 15.6865+-2.7653 14.8362+-0.1749 might be 1.0573x faster arguments-strict-mode 12.0017+-0.8217 ? 12.2829+-0.8253 ? might be 1.0234x slower arguments 10.4624+-0.2240 ? 11.3345+-1.1943 ? might be 1.0834x slower arity-mismatch-inlining 0.8472+-0.1060 0.8250+-0.0344 might be 1.0269x faster array-access-polymorphic-structure 7.2938+-0.8956 6.9022+-0.2619 might be 1.0567x faster array-nonarray-polymorhpic-access 33.8220+-1.6674 ? 34.3955+-1.5508 ? might be 1.0170x slower array-prototype-every 87.8969+-1.7488 ? 88.7825+-1.2540 ? might be 1.0101x slower array-prototype-forEach 85.3063+-4.0894 ? 85.9800+-2.1328 ? array-prototype-map 93.3947+-1.8865 ? 95.1311+-2.1259 ? might be 1.0186x slower array-prototype-some 86.7135+-2.2354 ? 88.4930+-2.1371 ? might be 1.0205x slower array-splice-contiguous 41.3620+-1.1539 ? 41.9445+-2.3152 ? might be 1.0141x slower array-with-double-add 4.2001+-0.1673 ? 4.3679+-0.3390 ? might be 1.0400x slower array-with-double-increment 3.2287+-0.1231 3.2050+-0.0483 array-with-double-mul-add 5.0745+-0.0813 ? 5.1350+-0.2111 ? might be 1.0119x slower array-with-double-sum 3.2942+-0.1417 3.2325+-0.0370 might be 1.0191x faster array-with-int32-add-sub 6.7590+-0.0817 ? 6.7876+-0.0630 ? array-with-int32-or-double-sum 3.3090+-0.0122 ? 3.3595+-0.1085 ? might be 1.0153x slower ArrayBuffer-DataView-alloc-large-long-lived 34.2374+-1.8286 33.2493+-1.4343 might be 1.0297x faster ArrayBuffer-DataView-alloc-long-lived 14.7597+-1.5999 ? 15.0086+-1.8157 ? might be 1.0169x slower ArrayBuffer-Int32Array-byteOffset 3.7353+-0.0767 ? 4.0595+-0.4023 ? might be 1.0868x slower ArrayBuffer-Int8Array-alloc-large-long-lived 32.3698+-1.5176 32.0557+-0.5443 ArrayBuffer-Int8Array-alloc-long-lived-buffer 22.7548+-1.5900 ? 23.6108+-1.6542 ? might be 1.0376x slower ArrayBuffer-Int8Array-alloc-long-lived 13.6327+-1.5348 12.5210+-0.2956 might be 1.0888x faster ArrayBuffer-Int8Array-alloc 11.0868+-1.4606 10.5878+-0.1412 might be 1.0471x faster asmjs_bool_bug 7.9972+-0.5881 7.7287+-0.1327 might be 1.0347x faster assign-custom-setter-polymorphic 3.7447+-0.6260 ? 3.7835+-0.4957 ? might be 1.0104x slower assign-custom-setter 4.9148+-1.0126 ? 5.1218+-0.7031 ? might be 1.0421x slower basic-set 9.9056+-2.1102 8.6635+-0.4080 might be 1.1434x faster big-int-mul 3.9925+-0.0992 3.9812+-0.1007 boolean-test 3.1130+-0.1915 3.0451+-0.0415 might be 1.0223x faster branch-fold 3.8822+-0.3455 3.8608+-0.2830 branch-on-string-as-boolean 19.7961+-1.3151 19.7430+-0.8583 by-val-generic 8.1956+-0.2858 ? 8.6039+-0.6392 ? might be 1.0498x slower call-spread-apply 29.8975+-1.1445 ? 31.3193+-2.0170 ? might be 1.0476x slower call-spread-call 26.8125+-2.1837 26.0535+-1.3785 might be 1.0291x faster captured-assignments 0.4429+-0.0301 0.4277+-0.0187 might be 1.0354x faster cast-int-to-double 5.3067+-0.0655 5.2985+-0.1494 cell-argument 8.5354+-0.1094 ? 8.6650+-0.2478 ? might be 1.0152x slower cfg-simplify 3.3682+-0.6105 3.0831+-0.1051 might be 1.0925x faster chain-getter-access 9.9694+-0.1751 ? 10.0901+-0.3222 ? might be 1.0121x slower cmpeq-obj-to-obj-other 12.2104+-1.5596 11.6854+-0.9851 might be 1.0449x faster constant-test 4.9333+-0.0399 ? 4.9635+-0.0616 ? create-lots-of-functions 12.0253+-0.4241 11.9133+-0.3042 DataView-custom-properties 36.8258+-1.2684 ? 38.1585+-1.5732 ? might be 1.0362x slower deconstructing-parameters-overridden-by-function 0.4775+-0.0257 ? 0.5287+-0.0718 ? might be 1.1072x slower delay-tear-off-arguments-strictmode 14.0673+-0.2366 ? 14.0848+-0.1102 ? deltablue-varargs 203.1466+-2.1432 ? 206.6475+-4.0448 ? might be 1.0172x slower destructuring-arguments 17.9766+-0.6230 ? 18.1674+-0.4335 ? might be 1.0106x slower destructuring-swap 5.0802+-0.0580 ? 5.2391+-0.3874 ? might be 1.0313x slower direct-arguments-getbyval 1.2691+-0.1583 ? 1.3191+-0.1050 ? might be 1.0394x slower div-boolean-double 5.3076+-0.2356 5.2609+-0.2113 div-boolean 7.9670+-0.3144 7.8293+-0.0800 might be 1.0176x faster double-get-by-val-out-of-bounds 4.5647+-0.1805 4.5240+-0.0752 double-pollution-getbyval 8.9323+-0.2052 ? 8.9875+-0.1841 ? double-pollution-putbyoffset 4.3159+-0.1327 4.2780+-0.0673 double-to-int32-typed-array-no-inline 2.2410+-0.0405 ? 2.2885+-0.0844 ? might be 1.0212x slower double-to-int32-typed-array 1.9651+-0.0329 1.9489+-0.0387 double-to-uint32-typed-array-no-inline 2.3393+-0.0659 ? 2.3468+-0.1319 ? double-to-uint32-typed-array 2.0889+-0.1280 2.0181+-0.0152 might be 1.0351x faster elidable-new-object-dag 45.5297+-1.2567 43.6402+-1.6210 might be 1.0433x faster elidable-new-object-roflcopter 46.8773+-2.1695 ? 48.5299+-1.4850 ? might be 1.0353x slower elidable-new-object-then-call 39.1847+-1.1683 ? 39.6617+-2.0794 ? might be 1.0122x slower elidable-new-object-tree 45.3700+-1.7544 ? 46.3948+-2.5814 ? might be 1.0226x slower empty-string-plus-int 5.5806+-0.4786 5.5476+-0.4084 emscripten-cube2hash 39.5888+-1.4544 ? 40.0063+-0.9569 ? might be 1.0105x slower exit-length-on-plain-object 14.6018+-1.2862 ? 14.8219+-1.5466 ? might be 1.0151x slower external-arguments-getbyval 1.2605+-0.0522 1.2399+-0.0845 might be 1.0166x faster external-arguments-putbyval 2.3460+-0.0804 ? 2.3919+-0.2728 ? might be 1.0196x slower fixed-typed-array-storage-var-index 1.2083+-0.0355 ? 1.2411+-0.0332 ? might be 1.0271x slower fixed-typed-array-storage 0.8890+-0.0510 ? 0.9294+-0.1305 ? might be 1.0455x slower Float32Array-matrix-mult 4.7928+-0.4407 ? 5.0573+-1.0362 ? might be 1.0552x slower Float32Array-to-Float64Array-set 52.7313+-1.7864 ! 56.9566+-1.8235 ! definitely 1.0801x slower Float64Array-alloc-long-lived 73.8189+-1.8595 ? 73.9422+-1.1068 ? Float64Array-to-Int16Array-set 71.9711+-1.9466 68.6934+-1.9773 might be 1.0477x faster fold-double-to-int 13.5618+-0.2239 13.4395+-0.2347 fold-get-by-id-to-multi-get-by-offset-rare-int 11.2015+-1.7005 10.6383+-1.4990 might be 1.0529x faster fold-get-by-id-to-multi-get-by-offset 11.0042+-0.8447 10.2380+-1.0180 might be 1.0748x faster fold-multi-get-by-offset-to-get-by-offset 9.7298+-0.9990 9.1572+-0.9675 might be 1.0625x faster fold-multi-get-by-offset-to-poly-get-by-offset 9.0404+-1.0069 8.7969+-0.6120 might be 1.0277x faster fold-multi-put-by-offset-to-poly-put-by-offset 9.3693+-1.3091 9.2808+-0.9562 fold-multi-put-by-offset-to-put-by-offset 5.9202+-0.7987 5.2061+-0.5908 might be 1.1372x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.8733+-0.1383 9.6226+-0.4190 might be 1.0261x faster fold-put-by-id-to-multi-put-by-offset 9.7646+-1.3738 ? 10.4747+-1.6072 ? might be 1.0727x slower fold-put-structure 5.0758+-0.1885 4.4408+-0.7235 might be 1.1430x faster for-of-iterate-array-entries 4.8081+-0.4275 4.6853+-0.1211 might be 1.0262x faster for-of-iterate-array-keys 3.7945+-0.1781 ? 3.9170+-0.2184 ? might be 1.0323x slower for-of-iterate-array-values 3.8639+-0.3262 3.8258+-0.1452 fround 21.6990+-0.7096 20.7475+-0.4076 might be 1.0459x faster ftl-library-inlining-dataview 63.9498+-0.6669 ? 64.7902+-0.4674 ? might be 1.0131x slower ftl-library-inlining 74.6216+-19.0414 73.5344+-18.7880 might be 1.0148x faster function-dot-apply 2.2258+-0.0259 ? 2.2297+-0.0197 ? function-test 3.4830+-0.1900 3.3632+-0.0942 might be 1.0356x faster function-with-eval 108.8488+-4.1650 104.5817+-5.4995 might be 1.0408x faster gcse-poly-get-less-obvious 18.8887+-0.8727 18.5819+-0.4669 might be 1.0165x faster gcse-poly-get 19.8960+-0.9794 ? 21.9863+-1.9819 ? might be 1.1051x slower gcse 4.3861+-0.1766 ? 4.3932+-0.1142 ? get-by-id-bimorphic-check-structure-elimination-simple 2.8168+-0.3469 ? 2.8516+-0.3516 ? might be 1.0124x slower get-by-id-bimorphic-check-structure-elimination 6.2942+-0.4022 6.0121+-0.0404 might be 1.0469x faster get-by-id-chain-from-try-block 7.9955+-1.5593 7.9932+-1.2972 get-by-id-check-structure-elimination 5.1030+-0.0724 ? 5.2260+-0.1808 ? might be 1.0241x slower get-by-id-proto-or-self 17.2528+-1.1109 16.8545+-0.4613 might be 1.0236x faster get-by-id-quadmorphic-check-structure-elimination-simple 3.1087+-0.0269 ? 3.1535+-0.0365 ? might be 1.0144x slower get-by-id-self-or-proto 17.6817+-0.7039 ? 17.7655+-0.6270 ? get-by-val-out-of-bounds 4.4183+-0.0707 4.3658+-0.0565 might be 1.0120x faster get_callee_monomorphic 2.9043+-0.1635 2.8545+-0.0690 might be 1.0174x faster get_callee_polymorphic 3.7586+-0.0358 ? 3.7621+-0.0394 ? getter-no-activation 5.0117+-0.2721 ? 5.1100+-0.2918 ? might be 1.0196x slower getter-richards 123.0515+-5.3821 ? 128.3137+-4.5004 ? might be 1.0428x slower getter 5.6591+-0.5833 ? 5.7242+-0.6452 ? might be 1.0115x slower global-var-const-infer-fire-from-opt 1.0064+-0.0989 0.9644+-0.0854 might be 1.0435x faster global-var-const-infer 0.8326+-0.1029 0.7823+-0.1284 might be 1.0643x faster HashMap-put-get-iterate-keys 26.3791+-0.9242 25.6685+-0.6340 might be 1.0277x faster HashMap-put-get-iterate 25.7738+-0.4047 ? 25.9108+-0.6623 ? HashMap-string-put-get-iterate 28.0664+-0.9138 27.1344+-1.0075 might be 1.0343x faster hoist-make-rope 12.5505+-1.0195 ? 13.2768+-2.1419 ? might be 1.0579x slower hoist-poly-check-structure-effectful-loop 5.0693+-0.1459 ? 5.0995+-0.1770 ? hoist-poly-check-structure 3.6497+-0.0414 ? 3.9323+-0.3503 ? might be 1.0775x slower imul-double-only 8.5460+-0.1508 ? 8.6101+-0.4420 ? imul-int-only 9.6672+-0.1689 ? 9.7228+-0.1018 ? imul-mixed 8.5146+-0.1935 ? 8.6381+-0.6846 ? might be 1.0145x slower in-four-cases 20.7144+-0.3607 ? 20.8560+-0.4567 ? in-one-case-false 10.8997+-0.8775 10.1967+-0.6982 might be 1.0689x faster in-one-case-true 10.6481+-0.7278 10.3528+-0.6383 might be 1.0285x faster in-two-cases 10.2253+-0.3437 ? 10.3432+-0.3304 ? might be 1.0115x slower indexed-properties-in-objects 3.0571+-0.3568 ? 3.1997+-0.2148 ? might be 1.0467x slower infer-closure-const-then-mov-no-inline 3.8791+-0.0212 ? 3.9184+-0.0937 ? might be 1.0101x slower infer-closure-const-then-mov 20.5756+-0.9122 20.0238+-0.5647 might be 1.0276x faster infer-closure-const-then-put-to-scope-no-inline 15.0308+-1.8524 14.7926+-1.3776 might be 1.0161x faster infer-closure-const-then-put-to-scope 22.4899+-1.1749 22.0817+-0.7238 might be 1.0185x faster infer-closure-const-then-reenter-no-inline 63.9440+-2.6479 ? 64.0485+-2.1722 ? infer-closure-const-then-reenter 22.2135+-0.6729 ? 23.1979+-1.4044 ? might be 1.0443x slower infer-constant-global-property 30.1193+-0.3231 ? 30.4753+-1.2435 ? might be 1.0118x slower infer-constant-property 2.6998+-0.0438 2.6494+-0.0301 might be 1.0190x faster infer-one-time-closure-ten-vars 13.0231+-1.4696 12.9566+-0.9042 infer-one-time-closure-two-vars 12.2441+-0.7158 12.1388+-0.4649 infer-one-time-closure 12.5299+-0.9306 11.9799+-0.2503 might be 1.0459x faster infer-one-time-deep-closure 21.4848+-1.4773 20.9032+-1.0427 might be 1.0278x faster inline-arguments-access 4.8128+-0.3659 ? 5.0516+-1.0346 ? might be 1.0496x slower inline-arguments-aliased-access 4.6728+-0.0427 ? 4.7805+-0.2184 ? might be 1.0230x slower inline-arguments-local-escape 4.8607+-0.1825 4.8079+-0.2388 might be 1.0110x faster inline-get-scoped-var 4.9087+-0.3042 ? 4.9430+-0.1919 ? inlined-put-by-id-transition 11.4708+-0.6025 ? 11.7785+-0.7535 ? might be 1.0268x slower int-or-other-abs-then-get-by-val 4.7580+-0.0778 ? 4.7756+-0.0762 ? int-or-other-abs-zero-then-get-by-val 17.4107+-0.7245 ? 18.0984+-1.1577 ? might be 1.0395x slower int-or-other-add-then-get-by-val 4.5314+-0.3218 4.4050+-0.1169 might be 1.0287x faster int-or-other-add 5.3726+-0.0954 5.3612+-0.0820 int-or-other-div-then-get-by-val 4.3531+-0.1979 ? 4.3549+-0.2391 ? int-or-other-max-then-get-by-val 4.3713+-0.0471 ? 4.4401+-0.1970 ? might be 1.0157x slower int-or-other-min-then-get-by-val 4.3976+-0.1284 ? 4.4150+-0.1690 ? int-or-other-mod-then-get-by-val 3.9075+-0.0394 ? 4.0185+-0.0987 ? might be 1.0284x slower int-or-other-mul-then-get-by-val 3.9755+-0.0567 3.9365+-0.0383 int-or-other-neg-then-get-by-val 4.5016+-0.1303 ? 4.6301+-0.2647 ? might be 1.0285x slower int-or-other-neg-zero-then-get-by-val 17.3936+-0.3343 ? 17.8546+-1.0647 ? might be 1.0265x slower int-or-other-sub-then-get-by-val 4.6438+-0.2263 4.6024+-0.1237 int-or-other-sub 3.7318+-0.3889 3.6234+-0.0988 might be 1.0299x faster int-overflow-local 4.5332+-0.1491 4.5194+-0.0409 Int16Array-alloc-long-lived 54.7818+-1.4699 52.5938+-0.9616 might be 1.0416x faster Int16Array-bubble-sort-with-byteLength 21.4480+-1.1291 ? 21.9213+-1.9838 ? might be 1.0221x slower Int16Array-bubble-sort 20.0559+-0.9520 19.2876+-0.2197 might be 1.0398x faster Int16Array-load-int-mul 1.6394+-0.2704 1.5202+-0.0689 might be 1.0784x faster Int16Array-to-Int32Array-set 57.3896+-1.8526 55.1628+-1.5924 might be 1.0404x faster Int32Array-alloc-large 24.0940+-0.9619 ? 24.7134+-1.3034 ? might be 1.0257x slower Int32Array-alloc-long-lived 58.5367+-1.5746 58.2525+-1.9303 Int32Array-alloc 3.7729+-0.1396 3.6318+-0.1048 might be 1.0388x faster Int32Array-Int8Array-view-alloc 7.2783+-1.1939 7.0385+-0.9800 might be 1.0341x faster int52-spill 6.5998+-0.3915 6.2939+-0.0856 might be 1.0486x faster Int8Array-alloc-long-lived 48.4574+-1.5498 ? 49.2828+-2.6406 ? might be 1.0170x slower Int8Array-load-with-byteLength 3.4739+-0.1698 3.3359+-0.0535 might be 1.0414x faster Int8Array-load 3.5028+-0.4296 3.4302+-0.2363 might be 1.0212x faster integer-divide 11.3412+-0.2934 ? 11.4711+-0.5799 ? might be 1.0114x slower integer-modulo 2.0741+-0.0916 ? 2.1171+-0.2116 ? might be 1.0208x slower is-boolean-fold-tricky 4.6763+-0.4990 4.4462+-0.0844 might be 1.0517x faster is-boolean-fold 3.0250+-0.3520 2.9628+-0.4057 might be 1.0210x faster is-function-fold-tricky-internal-function 10.3375+-0.2123 ? 10.4428+-0.1795 ? might be 1.0102x slower is-function-fold-tricky 4.5476+-0.0704 4.5240+-0.0584 is-function-fold 2.8639+-0.0254 ? 2.9715+-0.3554 ? might be 1.0376x slower is-number-fold-tricky 4.4870+-0.1417 ? 4.5806+-0.2285 ? might be 1.0209x slower is-number-fold 2.8710+-0.0754 2.8105+-0.0742 might be 1.0215x faster is-object-or-null-fold-functions 2.9032+-0.0563 ? 2.9169+-0.1284 ? is-object-or-null-fold-less-tricky 4.6347+-0.1763 4.4851+-0.0447 might be 1.0333x faster is-object-or-null-fold-tricky 10.0465+-0.0917 ? 10.2386+-0.2817 ? might be 1.0191x slower is-object-or-null-fold 2.8868+-0.0381 ? 2.9392+-0.1446 ? might be 1.0181x slower is-object-or-null-trickier-function 4.7151+-0.1497 4.6677+-0.1315 might be 1.0102x faster is-object-or-null-trickier-internal-function 12.1893+-0.2236 ? 12.3783+-0.4312 ? might be 1.0155x slower is-object-or-null-tricky-function 4.6231+-0.1558 ? 4.8875+-0.5706 ? might be 1.0572x slower is-object-or-null-tricky-internal-function 10.5841+-0.0678 ? 10.6619+-0.1091 ? is-string-fold-tricky 4.5503+-0.1466 4.4290+-0.1156 might be 1.0274x faster is-string-fold 2.8739+-0.0413 2.8394+-0.0800 might be 1.0121x faster is-undefined-fold-tricky 3.7606+-0.1450 3.6868+-0.0326 might be 1.0200x faster is-undefined-fold 3.0095+-0.3205 2.9071+-0.1027 might be 1.0352x faster large-int-captured 4.6477+-0.0326 ? 4.6630+-0.1054 ? large-int-neg 16.3885+-0.4055 ? 16.6847+-0.3877 ? might be 1.0181x slower large-int 15.6728+-1.6671 14.9854+-0.3039 might be 1.0459x faster logical-not 4.5672+-0.0788 4.5386+-0.0258 lots-of-fields 13.5217+-0.4700 12.9992+-0.4633 might be 1.0402x faster make-indexed-storage 3.3004+-0.2210 3.0701+-0.1115 might be 1.0750x faster make-rope-cse 5.2137+-0.5499 5.0517+-0.3967 might be 1.0321x faster marsaglia-larger-ints 36.7232+-0.9648 36.5121+-0.9906 marsaglia-osr-entry 24.0974+-1.4971 23.2525+-0.5637 might be 1.0363x faster max-boolean 2.5937+-0.1261 ^ 2.4340+-0.0235 ^ definitely 1.0656x faster method-on-number 16.9862+-0.3125 ? 17.1289+-0.2726 ? min-boolean 2.4858+-0.0291 2.4730+-0.0925 minus-boolean-double 3.1744+-0.0312 ? 3.2139+-0.0582 ? might be 1.0124x slower minus-boolean 2.4151+-0.1524 2.3032+-0.0790 might be 1.0486x faster misc-strict-eq 39.3632+-3.4624 38.1958+-1.7958 might be 1.0306x faster mod-boolean-double 11.2436+-0.9545 10.8977+-0.0821 might be 1.0317x faster mod-boolean 7.9123+-0.2730 7.8789+-0.0909 mul-boolean-double 3.7050+-0.0570 ? 3.8338+-0.3269 ? might be 1.0347x slower mul-boolean 2.9972+-0.3376 ? 3.0199+-0.3587 ? neg-boolean 3.3076+-0.2391 3.1879+-0.0674 might be 1.0375x faster negative-zero-divide 0.3642+-0.0380 0.3478+-0.0111 might be 1.0470x faster negative-zero-modulo 0.3477+-0.0183 ? 0.3810+-0.0865 ? might be 1.0957x slower negative-zero-negate 0.3247+-0.0140 ? 0.3439+-0.0495 ? might be 1.0592x slower nested-function-parsing 39.7375+-1.7278 39.1279+-1.4293 might be 1.0156x faster new-array-buffer-dead 114.1371+-1.6658 113.6510+-2.1253 new-array-buffer-push 7.3466+-0.7987 7.1635+-0.6263 might be 1.0256x faster new-array-dead 19.3146+-1.1445 18.9581+-0.3176 might be 1.0188x faster new-array-push 4.0214+-0.2084 ? 4.0673+-0.4275 ? might be 1.0114x slower no-inline-constructor 131.9454+-2.3379 ^ 121.8396+-3.0501 ^ definitely 1.0829x faster number-test 3.0496+-0.0563 ? 3.1987+-0.2147 ? might be 1.0489x slower object-closure-call 5.7141+-0.1402 5.6647+-0.1224 object-test 3.2777+-0.4040 3.1638+-0.1147 might be 1.0360x faster obvious-sink-pathology-taken 138.3976+-1.0471 ? 139.6801+-2.5914 ? obvious-sink-pathology 131.3220+-1.0577 128.4644+-1.9336 might be 1.0222x faster obviously-elidable-new-object 35.5605+-2.5942 ? 35.8939+-1.7457 ? plus-boolean-arith 2.5621+-0.1092 ? 2.5743+-0.2389 ? plus-boolean-double 3.2921+-0.1598 3.2590+-0.1354 might be 1.0102x faster plus-boolean 2.5674+-0.3062 2.4098+-0.1072 might be 1.0654x faster poly-chain-access-different-prototypes-simple 3.3734+-0.1258 3.3151+-0.0889 might be 1.0176x faster poly-chain-access-different-prototypes 2.6056+-0.0937 ? 2.6414+-0.2040 ? might be 1.0138x slower poly-chain-access-simpler 3.2743+-0.0532 ? 3.3210+-0.1226 ? might be 1.0143x slower poly-chain-access 2.5720+-0.0550 2.5223+-0.0212 might be 1.0197x faster poly-stricteq 62.8061+-1.7632 ? 63.6077+-1.6829 ? might be 1.0128x slower polymorphic-array-call 1.2761+-0.0476 ? 1.2841+-0.0693 ? polymorphic-get-by-id 3.2346+-0.2985 3.1626+-0.0852 might be 1.0228x faster polymorphic-put-by-id 28.9013+-1.3473 ? 31.1026+-1.9661 ? might be 1.0762x slower polymorphic-structure 14.8958+-0.2911 ? 14.9788+-0.3974 ? polyvariant-monomorphic-get-by-id 8.5712+-0.1896 ? 8.7802+-0.7835 ? might be 1.0244x slower proto-getter-access 10.1825+-0.1758 10.0915+-0.2608 put-by-id-replace-and-transition 9.2014+-0.2343 9.1986+-0.2949 put-by-id-slightly-polymorphic 2.8834+-0.3480 2.8191+-0.0442 might be 1.0228x faster put-by-id 12.7938+-0.4963 ? 13.1392+-0.6028 ? might be 1.0270x slower put-by-val-direct 0.4184+-0.0251 ? 0.4220+-0.0249 ? put-by-val-large-index-blank-indexing-type 5.8663+-0.1294 ? 6.1504+-0.7624 ? might be 1.0484x slower put-by-val-machine-int 2.7823+-0.0660 ? 2.8717+-0.2269 ? might be 1.0321x slower rare-osr-exit-on-local 14.8725+-0.1546 ? 15.5987+-0.7651 ? might be 1.0488x slower register-pressure-from-osr 21.7651+-0.3849 21.4785+-0.2368 might be 1.0133x faster setter 6.4977+-0.7657 5.3954+-0.4041 might be 1.2043x faster simple-activation-demo 25.4752+-1.1068 25.2053+-0.8241 might be 1.0107x faster simple-getter-access 12.8335+-0.2326 ? 12.9610+-0.2640 ? simple-poly-call-nested 8.3874+-0.2459 ? 8.4271+-0.2374 ? simple-poly-call 1.2552+-0.0209 ? 1.2650+-0.0210 ? sin-boolean 24.0574+-0.9205 22.2940+-1.7308 might be 1.0791x faster singleton-scope 67.5834+-0.7341 ? 70.7494+-3.3326 ? might be 1.0468x slower sink-function 12.2899+-0.3006 ? 12.5646+-0.5588 ? might be 1.0224x slower sinkable-new-object-dag 70.8078+-1.6545 70.4924+-2.6450 sinkable-new-object-taken 54.0090+-2.8518 51.2965+-3.0333 might be 1.0529x faster sinkable-new-object 39.0991+-1.2801 38.2803+-0.5756 might be 1.0214x faster slow-array-profile-convergence 3.0665+-0.6344 2.9869+-0.3578 might be 1.0267x faster slow-convergence 2.8670+-0.3427 2.7189+-0.0899 might be 1.0545x faster sorting-benchmark 20.8479+-0.2511 ? 21.3106+-1.5328 ? might be 1.0222x slower sparse-conditional 1.1615+-0.0643 1.1093+-0.0166 might be 1.0470x faster splice-to-remove 17.5863+-1.6863 17.0345+-1.2749 might be 1.0324x faster string-char-code-at 17.7648+-1.2207 17.3382+-1.1202 might be 1.0246x faster string-concat-object 2.7061+-0.3217 2.6805+-0.2298 string-concat-pair-object 2.5116+-0.0520 ? 2.7131+-0.5518 ? might be 1.0802x slower string-concat-pair-simple 11.9251+-0.3112 11.5071+-0.2640 might be 1.0363x faster string-concat-simple 12.1980+-0.5210 ? 13.2129+-3.3587 ? might be 1.0832x slower string-cons-repeat 8.3515+-0.6238 ? 8.9486+-1.2248 ? might be 1.0715x slower string-cons-tower 8.4317+-0.6996 ? 8.8396+-1.1004 ? might be 1.0484x slower string-equality 17.5135+-0.2340 ? 17.6004+-0.4901 ? string-get-by-val-big-char 7.2497+-0.3055 7.1458+-0.1341 might be 1.0145x faster string-get-by-val-out-of-bounds-insane 3.8451+-0.6238 ? 3.9861+-0.4729 ? might be 1.0367x slower string-get-by-val-out-of-bounds 5.2817+-0.1669 5.2092+-0.0594 might be 1.0139x faster string-get-by-val 3.3776+-0.1265 ? 3.3960+-0.0493 ? string-hash 2.1488+-0.1568 2.0707+-0.0455 might be 1.0377x faster string-long-ident-equality 15.2775+-0.2600 15.1820+-0.2556 string-out-of-bounds 15.1056+-0.3304 14.8628+-0.2556 might be 1.0163x faster string-repeat-arith 35.9455+-2.6814 35.0235+-1.9042 might be 1.0263x faster string-sub 68.9455+-2.7560 68.7264+-3.2435 string-test 3.0938+-0.1675 ? 3.1095+-0.3403 ? string-var-equality 33.7300+-1.9468 33.0508+-1.8982 might be 1.0206x faster structure-hoist-over-transitions 2.6552+-0.0709 ? 2.7123+-0.2471 ? might be 1.0215x slower substring-concat-weird 40.9310+-1.6034 40.8719+-1.6044 substring-concat 40.2504+-0.4433 ? 40.9985+-0.8247 ? might be 1.0186x slower substring 47.3151+-2.9234 46.1821+-2.0919 might be 1.0245x faster switch-char-constant 2.7330+-0.0578 ? 2.7953+-0.2474 ? might be 1.0228x slower switch-char 6.7926+-1.1034 6.5631+-1.0482 might be 1.0350x faster switch-constant 8.5080+-0.2131 ? 8.6403+-0.4041 ? might be 1.0156x slower switch-string-basic-big-var 18.0417+-0.3967 ? 18.4135+-0.7091 ? might be 1.0206x slower switch-string-basic-big 14.6105+-0.2971 ? 15.3445+-0.8014 ? might be 1.0502x slower switch-string-basic-var 15.0816+-0.9919 ? 16.8730+-4.4301 ? might be 1.1188x slower switch-string-basic 13.7635+-0.3713 13.5308+-0.2617 might be 1.0172x faster switch-string-big-length-tower-var 20.5540+-1.2572 ? 21.2533+-1.2571 ? might be 1.0340x slower switch-string-length-tower-var 15.3052+-0.3233 ? 15.3903+-0.1766 ? switch-string-length-tower 13.1029+-0.4819 12.7760+-0.1992 might be 1.0256x faster switch-string-short 12.8110+-0.2831 ? 12.8703+-0.2804 ? switch 12.8761+-0.2912 12.5076+-0.0974 might be 1.0295x faster tear-off-arguments-simple 3.5764+-0.2011 3.4305+-0.0747 might be 1.0425x faster tear-off-arguments 4.7480+-0.1670 4.6964+-0.0532 might be 1.0110x faster temporal-structure 12.3202+-0.2157 12.3029+-0.1860 to-int32-boolean 13.9870+-0.7985 13.7907+-0.4550 might be 1.0142x faster try-catch-get-by-val-cloned-arguments 15.0350+-1.4005 14.4935+-0.4362 might be 1.0374x faster try-catch-get-by-val-direct-arguments 6.4294+-0.0372 ? 6.8773+-0.5640 ? might be 1.0697x slower try-catch-get-by-val-scoped-arguments 7.9189+-0.3035 ? 8.2972+-0.9171 ? might be 1.0478x slower typed-array-get-set-by-val-profiling 33.3748+-1.9791 33.1197+-1.5811 undefined-property-access 358.4873+-3.9328 ? 359.8091+-4.7467 ? undefined-test 3.1068+-0.1519 ? 3.1842+-0.3403 ? might be 1.0249x slower unprofiled-licm 25.0980+-3.2555 23.7136+-1.4741 might be 1.0584x faster varargs-call 16.1762+-0.5304 ? 16.6330+-1.3758 ? might be 1.0282x slower varargs-construct-inline 23.8445+-1.2933 23.5767+-1.0594 might be 1.0114x faster varargs-construct 32.4129+-0.9348 ? 33.1416+-1.4897 ? might be 1.0225x slower varargs-inline 9.4080+-0.0803 ? 9.4551+-0.1779 ? varargs-strict-mode 10.4024+-0.3032 ? 10.6425+-0.2857 ? might be 1.0231x slower varargs 10.2199+-0.0963 ? 10.3233+-0.1939 ? might be 1.0101x slower weird-inlining-const-prop 2.3933+-0.1542 ? 2.4170+-0.2581 ? <geometric> 8.6240+-0.0259 8.6038+-0.0118 might be 1.0023x faster TipOfTree MoreFTLAI AsmBench: bigfib.cpp 495.0035+-1.7222 ? 498.0674+-5.0501 ? cray.c 425.5793+-6.5097 ? 427.4196+-5.4509 ? dry.c 481.9525+-8.6790 ? 482.9209+-8.2841 ? FloatMM.c 730.4862+-9.4699 727.9580+-7.0671 gcc-loops.cpp 4304.6523+-38.5713 4287.7308+-14.7932 n-body.c 982.9005+-6.8341 981.7188+-6.4864 Quicksort.c 419.8948+-5.1199 ? 422.5041+-5.4117 ? stepanov_container.cpp 3602.2148+-10.6756 ? 3618.3750+-19.5309 ? Towers.c 259.5187+-0.7723 ? 261.1121+-3.2883 ? <geometric> 792.3764+-3.0038 ? 794.1959+-2.2211 ? might be 1.0023x slower TipOfTree MoreFTLAI CompressionBench: huffman 367.3377+-5.7203 366.4925+-2.4149 arithmetic-simple 401.2019+-7.9292 ? 401.4430+-10.5321 ? arithmetic-precise 302.9927+-6.3914 301.3920+-11.0029 arithmetic-complex-precise 298.6305+-2.9615 296.4503+-3.3609 arithmetic-precise-order-0 425.9280+-8.4396 ? 434.9696+-15.0576 ? might be 1.0212x slower arithmetic-precise-order-1 329.6323+-3.7135 ? 329.8437+-6.4023 ? arithmetic-precise-order-2 361.3228+-7.5016 360.6905+-4.4830 arithmetic-simple-order-1 421.5302+-1.0212 ? 427.8086+-5.7225 ? might be 1.0149x slower arithmetic-simple-order-2 472.8546+-6.3149 469.1770+-5.0197 lz-string 319.0969+-1.9267 ? 325.3835+-7.2643 ? might be 1.0197x slower <geometric> 365.8797+-1.5893 ? 367.0270+-2.6640 ? might be 1.0031x slower TipOfTree MoreFTLAI Geomean of preferred means: <scaled-result> 64.1081+-0.1868 63.9787+-0.2021 might be 1.0020x faster Landed in http://trac.webkit.org/changeset/183708 |