RESOLVED FIXED Bug 148666
Add support for Callee-Saves registers
https://bugs.webkit.org/show_bug.cgi?id=148666
Summary Add support for Callee-Saves registers
Michael Saboff
Reported 2015-08-31 18:05:38 PDT
Save and restore platform callee save registers. We only do this for 64 bit builds as it isn't needed nor expected to be profitable for 32 bit builds.
Attachments
Patch (190.47 KB, patch)
2015-09-09 12:27 PDT, Michael Saboff
no flags
Patch with suggested fixes and fix for win32 build (191.21 KB, patch)
2015-09-09 15:18 PDT, Michael Saboff
fpizlo: review+
Basile Clement
Comment 1 2015-08-31 18:07:55 PDT
*** Bug 146845 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 2 2015-08-31 18:08:17 PDT
*** Bug 147639 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 3 2015-08-31 18:08:21 PDT
*** Bug 146854 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 4 2015-08-31 18:08:52 PDT
*** Bug 148076 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 5 2015-08-31 18:09:56 PDT
*** Bug 148167 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 6 2015-08-31 18:10:10 PDT
*** Bug 148246 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 7 2015-08-31 18:10:42 PDT
*** Bug 147747 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 8 2015-08-31 18:10:46 PDT
*** Bug 148345 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 9 2015-08-31 18:11:03 PDT
*** Bug 148099 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 10 2015-08-31 18:11:45 PDT
*** Bug 148494 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 11 2015-08-31 18:12:48 PDT
*** Bug 148547 has been marked as a duplicate of this bug. ***
Basile Clement
Comment 12 2015-08-31 18:13:03 PDT
*** Bug 148652 has been marked as a duplicate of this bug. ***
Michael Saboff
Comment 13 2015-09-09 12:27:38 PDT
Michael Saboff
Comment 14 2015-09-09 12:29:22 PDT
Performance results look neutral overall. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on msaboff-pro (MacPro5,1). VMs tested: "Baseline" at /Volumes/Data/src/webkit.baseline/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc "CalleeSaves" at /Volumes/Data/src/webkit/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc Collected 4 samples per benchmark/VM, with 4 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. Baseline CalleeSaves SunSpider: 3d-cube 7.9928+-0.4418 ? 8.0573+-0.3016 ? 3d-morph 7.8198+-0.2064 ? 8.0786+-0.1460 ? might be 1.0331x slower 3d-raytrace 8.6527+-0.3001 ? 8.9567+-0.3644 ? might be 1.0351x slower access-binary-trees 3.0626+-0.1847 ? 3.1015+-0.2635 ? might be 1.0127x slower access-fannkuch 8.5485+-0.2050 8.5142+-0.1279 access-nbody 4.2827+-0.0651 ? 4.3107+-0.1841 ? access-nsieve 4.5638+-0.0972 ? 4.6740+-0.0964 ? might be 1.0241x slower bitops-3bit-bits-in-byte 1.6876+-0.1365 1.6575+-0.0725 might be 1.0181x faster bitops-bits-in-byte 5.6458+-0.1243 5.6010+-0.1283 bitops-bitwise-and 2.9431+-0.1517 2.7435+-0.1104 might be 1.0728x faster bitops-nsieve-bits 4.5085+-0.1361 4.3542+-0.1537 might be 1.0355x faster controlflow-recursive 3.0344+-0.1344 ? 3.3735+-0.2282 ? might be 1.1118x slower crypto-aes 6.0410+-0.0531 ! 6.4158+-0.2965 ! definitely 1.0620x slower crypto-md5 3.8271+-0.2802 ? 4.0269+-0.0675 ? might be 1.0522x slower crypto-sha1 3.1725+-0.1627 ! 3.4653+-0.0666 ! definitely 1.0923x slower date-format-tofte 12.5102+-0.3102 ? 12.8682+-0.1895 ? might be 1.0286x slower date-format-xparb 7.4270+-0.3769 ? 7.8649+-0.4083 ? might be 1.0590x slower math-cordic 4.1630+-0.0970 ! 4.4160+-0.0998 ! definitely 1.0608x slower math-partial-sums 9.9321+-0.2271 ? 9.9799+-0.2850 ? math-spectral-norm 2.8958+-0.1702 ? 3.0941+-0.2078 ? might be 1.0685x slower regexp-dna 10.4353+-0.2928 9.9435+-0.5145 might be 1.0495x faster string-base64 6.4023+-0.2319 ? 6.7002+-0.1694 ? might be 1.0465x slower string-fasta 9.2318+-0.2312 ? 9.2417+-0.1361 ? string-tagcloud 13.4342+-0.0910 13.4091+-0.4617 string-unpack-code 28.4358+-0.8923 28.2206+-0.7995 string-validate-input 6.7042+-0.1720 ? 6.8822+-0.2946 ? might be 1.0266x slower <arithmetic> 7.2059+-0.0608 ? 7.3058+-0.0908 ? might be 1.0139x slower Baseline CalleeSaves LongSpider: 3d-cube 1229.5276+-4.5635 ^ 1214.8652+-4.2533 ^ definitely 1.0121x faster 3d-morph 1958.8052+-0.4651 1955.5404+-6.7737 3d-raytrace 1069.6393+-22.1067 ? 1072.5795+-6.7612 ? access-binary-trees 1458.8109+-7.8321 1456.6381+-4.0488 access-fannkuch 475.9203+-22.1500 465.2122+-8.4168 might be 1.0230x faster access-nbody 1063.2477+-0.4884 ! 1066.5579+-0.3716 ! definitely 1.0031x slower access-nsieve 692.5743+-5.8187 ? 702.3073+-10.7159 ? might be 1.0141x slower bitops-3bit-bits-in-byte 46.0367+-0.3634 ? 46.2672+-0.3989 ? bitops-bits-in-byte 338.2800+-1.5229 ! 353.9699+-0.9432 ! definitely 1.0464x slower bitops-nsieve-bits 651.5029+-1.4822 649.5268+-4.0606 controlflow-recursive 778.1221+-1.1681 ^ 761.5012+-1.6372 ^ definitely 1.0218x faster crypto-aes 967.4644+-4.5063 ^ 916.2629+-6.4824 ^ definitely 1.0559x faster crypto-md5 755.6978+-10.5913 ! 822.7208+-7.2924 ! definitely 1.0887x slower crypto-sha1 1100.9877+-5.9601 ? 1106.9943+-9.4179 ? date-format-tofte 1012.4187+-25.6304 ? 1022.3882+-44.6001 ? date-format-xparb 1127.9755+-19.5947 1116.1700+-10.5657 might be 1.0106x faster hash-map 243.5212+-5.9469 242.9580+-1.7979 math-cordic 667.8378+-2.1462 ! 673.4316+-1.1607 ! definitely 1.0084x slower math-partial-sums 1187.1393+-2.2919 1183.5071+-4.3602 math-spectral-norm 1107.2436+-1.6854 ! 1112.6567+-2.0757 ! definitely 1.0049x slower string-base64 571.9952+-2.2776 ^ 560.1119+-4.1459 ^ definitely 1.0212x faster string-fasta 611.4389+-10.9670 ? 621.0126+-6.5266 ? might be 1.0157x slower string-tagcloud 305.0017+-3.0116 303.4891+-3.8870 <geometric> 693.0835+-2.6120 ? 694.3070+-2.3016 ? might be 1.0018x slower Baseline CalleeSaves V8Spider: crypto 72.1155+-0.6185 ? 73.1060+-0.5313 ? might be 1.0137x slower deltablue 89.5450+-4.5465 ? 92.2560+-1.8653 ? might be 1.0303x slower earley-boyer 64.7399+-0.6215 ? 65.4130+-0.7159 ? might be 1.0104x slower raytrace 38.5266+-0.8855 ! 40.3173+-0.6300 ! definitely 1.0465x slower regexp 107.5262+-1.9210 ? 108.1299+-0.3159 ? richards 87.1683+-0.6084 85.0622+-1.5047 might be 1.0248x faster splay 58.4373+-5.4030 ? 59.6768+-3.5955 ? might be 1.0212x slower <geometric> 70.6774+-1.4831 ? 71.7166+-0.7746 ? might be 1.0147x slower Baseline CalleeSaves Octane: encrypt 0.32057+-0.00181 ! 0.32331+-0.00055 ! definitely 1.0085x slower decrypt 5.76899+-0.00655 ! 5.98170+-0.02201 ! definitely 1.0369x slower deltablue x2 0.27321+-0.00335 0.26939+-0.01367 might be 1.0142x faster earley 0.52280+-0.00371 ? 0.53235+-0.01193 ? might be 1.0183x slower boyer 8.93618+-0.12509 ? 9.00151+-0.03944 ? navier-stokes x2 6.65805+-0.00402 6.65748+-0.00945 raytrace x2 1.86555+-0.08120 1.76718+-0.07563 might be 1.0557x faster richards x2 0.17912+-0.00078 ? 0.17956+-0.00169 ? splay x2 0.58201+-0.02368 0.57364+-0.00153 might be 1.0146x faster regexp x2 40.71020+-2.18233 40.22243+-0.47877 might be 1.0121x faster pdfjs x2 62.12309+-0.09826 ! 62.61260+-0.04944 ! definitely 1.0079x slower mandreel x2 74.44370+-0.50687 ^ 72.03175+-0.59141 ^ definitely 1.0335x faster gbemu x2 65.41352+-8.28463 65.30056+-4.68395 closure 0.95444+-0.00702 ? 0.96803+-0.00662 ? might be 1.0142x slower jquery 12.34563+-0.09954 ! 12.50699+-0.05801 ! definitely 1.0131x slower box2d x2 18.16747+-0.21236 ? 18.48016+-0.24023 ? might be 1.0172x slower zlib x2 595.81270+-1.17158 ? 595.82015+-5.84225 ? typescript x2 1122.74829+-43.75787 ? 1144.47345+-30.79251 ? might be 1.0193x slower <geometric> 9.58870+-0.14266 9.56771+-0.03056 might be 1.0022x faster Baseline CalleeSaves Kraken: ai-astar 344.650+-2.273 ? 345.034+-2.323 ? audio-beat-detection 83.158+-0.550 ? 84.296+-0.933 ? might be 1.0137x slower audio-dft 134.926+-2.578 ? 135.372+-0.938 ? audio-fft 60.561+-0.182 ! 62.335+-0.239 ! definitely 1.0293x slower audio-oscillator 106.950+-1.188 106.733+-0.325 imaging-darkroom 101.962+-3.985 100.198+-0.083 might be 1.0176x faster imaging-desaturate 92.843+-0.567 ? 93.488+-1.128 ? imaging-gaussian-blur 149.884+-2.237 ? 150.696+-0.519 ? json-parse-financial 72.237+-0.915 ? 73.339+-0.390 ? might be 1.0153x slower json-stringify-tinderbox 42.226+-0.149 ? 42.571+-0.411 ? stanford-crypto-aes 68.734+-0.605 67.520+-1.111 might be 1.0180x faster stanford-crypto-ccm 60.556+-0.795 ? 62.197+-2.645 ? might be 1.0271x slower stanford-crypto-pbkdf2 150.639+-5.810 149.016+-0.581 might be 1.0109x faster stanford-crypto-sha256-iterative 59.062+-0.396 ? 59.803+-0.523 ? might be 1.0125x slower <arithmetic> 109.170+-0.744 ? 109.471+-0.268 ? might be 1.0028x slower Baseline CalleeSaves JSRegress: abc-forward-loop-equal 57.4637+-0.1535 ? 57.4824+-0.3048 ? abc-postfix-backward-loop 57.0211+-0.1585 56.8592+-0.3777 abc-simple-backward-loop 56.4916+-0.3372 56.4890+-0.3533 abc-simple-forward-loop 56.8463+-0.3065 56.6793+-0.3358 abc-skippy-loop 39.0104+-0.2135 ? 39.1538+-0.3967 ? abs-boolean 3.8511+-0.0910 ? 3.8779+-0.1921 ? adapt-to-double-divide 17.4612+-0.8959 17.4203+-0.9335 aliased-arguments-getbyval 1.6136+-0.3038 ? 1.6536+-0.2916 ? might be 1.0247x slower allocate-big-object 3.8900+-0.2990 ? 3.9271+-0.2164 ? arguments-named-and-reflective 14.6088+-0.4831 ? 14.6970+-0.1325 ? arguments-out-of-bounds 14.3838+-0.5382 ? 14.8004+-0.3796 ? might be 1.0290x slower arguments-strict-mode 12.8257+-0.6247 12.6533+-0.9900 might be 1.0136x faster arguments 11.6955+-0.2463 11.3489+-0.2943 might be 1.0305x faster arity-mismatch-inlining 1.2043+-0.1028 ? 1.3431+-0.1305 ? might be 1.1153x slower array-access-polymorphic-structure 9.4614+-0.2135 ? 9.6665+-0.1912 ? might be 1.0217x slower array-nonarray-polymorhpic-access 43.1016+-1.3879 42.0618+-1.6629 might be 1.0247x faster array-prototype-every 131.8005+-1.8360 ^ 124.6719+-1.2164 ^ definitely 1.0572x faster array-prototype-forEach 129.6708+-2.0563 124.1695+-4.3603 might be 1.0443x faster array-prototype-map 143.2799+-1.2371 ^ 139.6074+-1.1489 ^ definitely 1.0263x faster array-prototype-reduce 120.7306+-1.1592 119.0132+-1.9228 might be 1.0144x faster array-prototype-reduceRight 120.9698+-0.9027 ^ 117.1212+-0.9645 ^ definitely 1.0329x faster array-prototype-some 139.8691+-18.1322 125.2195+-2.2101 might be 1.1170x faster array-splice-contiguous 33.5990+-0.6575 ? 34.3202+-0.5973 ? might be 1.0215x slower array-with-double-add 5.6039+-0.1317 5.5160+-0.1921 might be 1.0159x faster array-with-double-increment 4.2315+-0.1578 4.1865+-0.1160 might be 1.0107x faster array-with-double-mul-add 7.2401+-0.2039 ? 7.2661+-0.1716 ? array-with-double-sum 4.3999+-0.1135 ? 4.4050+-0.1727 ? array-with-int32-add-sub 9.9252+-0.4224 9.5164+-0.1942 might be 1.0430x faster array-with-int32-or-double-sum 4.5858+-0.0914 4.4927+-0.1830 might be 1.0207x faster ArrayBuffer-DataView-alloc-large-long-lived 48.4656+-0.6353 48.3635+-1.2376 ArrayBuffer-DataView-alloc-long-lived 18.9482+-2.1025 18.9379+-0.6554 ArrayBuffer-Int32Array-byteOffset 5.7285+-0.1574 5.6353+-0.2835 might be 1.0165x faster ArrayBuffer-Int8Array-alloc-large-long-lived 49.7737+-2.4798 48.9855+-0.2753 might be 1.0161x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 30.2004+-0.8061 ? 30.3832+-0.4264 ? ArrayBuffer-Int8Array-alloc-long-lived 17.4227+-0.2891 ? 17.5327+-0.2787 ? ArrayBuffer-Int8Array-alloc 15.7516+-3.6616 14.5201+-0.2835 might be 1.0848x faster arrowfunction-call 14.4292+-0.1504 ! 15.3791+-0.1894 ! definitely 1.0658x slower asmjs_bool_bug 9.5934+-0.1091 ! 9.9169+-0.1385 ! definitely 1.0337x slower assign-custom-setter-polymorphic 4.1573+-0.0583 4.1500+-0.1118 assign-custom-setter 5.6197+-0.1882 ? 5.6782+-0.1799 ? might be 1.0104x slower basic-set 11.3558+-0.7437 ? 11.3623+-0.3560 ? big-int-mul 5.8637+-0.0585 5.8287+-0.1480 boolean-test 4.4430+-0.1707 ? 4.6170+-0.3020 ? might be 1.0392x slower branch-fold 4.6981+-0.1084 ? 4.8550+-0.0807 ? might be 1.0334x slower branch-on-string-as-boolean 22.9683+-0.6107 ? 23.2860+-1.1213 ? might be 1.0138x slower by-val-generic 3.7207+-0.2876 ? 3.8499+-0.2322 ? might be 1.0347x slower call-spread-apply 39.5907+-3.7338 38.7917+-0.6637 might be 1.0206x faster call-spread-call 31.6939+-0.6873 31.5374+-0.4019 captured-assignments 0.7217+-0.1201 ? 0.7405+-0.1477 ? might be 1.0260x slower cast-int-to-double 8.5120+-0.1173 ? 8.6293+-0.0719 ? might be 1.0138x slower cell-argument 8.1620+-0.1957 ? 8.5125+-0.1951 ? might be 1.0429x slower cfg-simplify 3.6982+-0.1284 ? 3.8566+-0.1310 ? might be 1.0428x slower chain-getter-access 10.4148+-0.3420 ? 10.4205+-0.3246 ? cmpeq-obj-to-obj-other 14.2186+-0.7248 ? 15.0137+-0.9113 ? might be 1.0559x slower constant-test 8.2130+-0.0900 8.2058+-0.0900 create-lots-of-functions 16.4976+-0.5080 ? 16.7747+-0.5280 ? might be 1.0168x slower cse-new-array-buffer 3.2420+-0.1045 ? 3.3469+-0.1637 ? might be 1.0324x slower cse-new-array 3.3073+-0.3591 ? 3.5261+-0.1066 ? might be 1.0662x slower DataView-custom-properties 55.4885+-0.7051 ? 55.5548+-0.8008 ? delay-tear-off-arguments-strictmode 19.1107+-0.3742 ? 19.2010+-0.5850 ? deltablue-varargs 271.5906+-2.7678 ! 283.4049+-5.3153 ! definitely 1.0435x slower destructuring-arguments 250.2731+-2.6080 ? 256.1074+-17.4655 ? might be 1.0233x slower destructuring-parameters-overridden-by-function 0.7210+-0.0897 ? 0.7313+-0.1439 ? might be 1.0143x slower destructuring-swap 7.7993+-0.1432 ? 7.8676+-0.1209 ? direct-arguments-getbyval 1.7081+-0.1999 ? 1.7970+-0.3495 ? might be 1.0520x slower div-boolean-double 5.5656+-0.1442 5.5406+-0.0820 div-boolean 10.0630+-0.0362 ? 10.1185+-0.0867 ? double-get-by-val-out-of-bounds 6.0363+-0.1436 ? 6.2393+-0.3184 ? might be 1.0336x slower double-pollution-getbyval 9.9256+-0.1049 ? 9.9445+-0.0734 ? double-pollution-putbyoffset 5.8484+-0.2747 5.6714+-0.2870 might be 1.0312x faster double-real-use 40.8811+-0.1017 40.8345+-0.2169 double-to-int32-typed-array-no-inline 2.8983+-0.1429 ? 3.1149+-0.1102 ? might be 1.0747x slower double-to-int32-typed-array 2.7859+-0.1478 ! 3.0312+-0.0880 ! definitely 1.0881x slower double-to-uint32-typed-array-no-inline 2.8902+-0.1357 ? 3.1694+-0.1659 ? might be 1.0966x slower double-to-uint32-typed-array 2.7601+-0.0767 ? 2.9251+-0.1796 ? might be 1.0598x slower elidable-new-object-dag 56.5925+-0.7505 55.9567+-0.9370 might be 1.0114x faster elidable-new-object-roflcopter 55.3993+-0.4653 55.2256+-1.1887 elidable-new-object-then-call 50.5293+-1.4065 ? 50.6087+-0.4833 ? elidable-new-object-tree 66.0302+-1.2662 65.6547+-1.6497 empty-string-plus-int 7.6779+-0.2948 ? 7.6995+-0.1271 ? emscripten-cube2hash 46.2324+-0.4627 ? 46.7122+-0.3559 ? might be 1.0104x slower exit-length-on-plain-object 19.2318+-0.9856 ? 19.5887+-0.5774 ? might be 1.0186x slower external-arguments-getbyval 1.5742+-0.0550 ? 1.8683+-0.3749 ? might be 1.1868x slower external-arguments-putbyval 3.2278+-0.2269 ? 3.3053+-0.1864 ? might be 1.0240x slower fixed-typed-array-storage-var-index 1.6376+-0.1282 ? 1.7123+-0.0758 ? might be 1.0456x slower fixed-typed-array-storage 1.2587+-0.1419 ? 1.3677+-0.1125 ? might be 1.0867x slower Float32Array-matrix-mult 6.0018+-0.2626 ? 6.1035+-0.2487 ? might be 1.0169x slower Float32Array-to-Float64Array-set 81.3908+-1.3784 ? 81.5637+-0.9782 ? Float64Array-alloc-long-lived 105.6177+-0.3884 102.7424+-3.7488 might be 1.0280x faster Float64Array-to-Int16Array-set 95.7855+-1.2433 ! 102.4429+-1.1428 ! definitely 1.0695x slower fold-double-to-int 19.3105+-0.3111 ? 19.6115+-0.6105 ? might be 1.0156x slower fold-get-by-id-to-multi-get-by-offset-rare-int 11.9613+-0.3138 11.9172+-0.5720 fold-get-by-id-to-multi-get-by-offset 9.8408+-0.2025 9.8124+-0.3589 fold-multi-get-by-offset-to-get-by-offset 8.9713+-0.6212 ? 9.8940+-0.8659 ? might be 1.1028x slower fold-multi-get-by-offset-to-poly-get-by-offset 8.8856+-0.0590 ! 9.2404+-0.0661 ! definitely 1.0399x slower fold-multi-put-by-offset-to-poly-put-by-offset 9.2551+-0.1393 ? 9.3527+-0.6546 ? might be 1.0105x slower fold-multi-put-by-offset-to-put-by-offset 8.7441+-0.6125 8.3320+-0.5114 might be 1.0495x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 14.6318+-0.3571 ? 14.6726+-1.0454 ? fold-put-by-id-to-multi-put-by-offset 10.1969+-0.8448 ? 10.3048+-0.4124 ? might be 1.0106x slower fold-put-by-val-with-string-to-multi-put-by-offset 10.7410+-0.9617 ? 10.7936+-0.7428 ? fold-put-by-val-with-symbol-to-multi-put-by-offset 10.6995+-0.9572 ? 11.0486+-0.6894 ? might be 1.0326x slower fold-put-structure 8.0551+-0.5198 7.8500+-0.1415 might be 1.0261x faster for-of-iterate-array-entries 16.7467+-0.4121 ? 16.9798+-0.3959 ? might be 1.0139x slower for-of-iterate-array-keys 5.1378+-0.1157 ? 5.3023+-0.3667 ? might be 1.0320x slower for-of-iterate-array-values 5.0558+-0.1167 ? 5.3209+-0.2651 ? might be 1.0524x slower fround 19.8099+-0.6871 19.0956+-0.4008 might be 1.0374x faster ftl-library-inlining-dataview 102.6085+-6.3498 97.7753+-1.7214 might be 1.0494x faster ftl-library-inlining 115.5441+-9.3333 ? 117.2675+-11.0986 ? might be 1.0149x slower function-call 14.4835+-0.2895 ! 15.4243+-0.1648 ! definitely 1.0650x slower function-dot-apply 2.9910+-0.1213 ? 3.2222+-0.1309 ? might be 1.0773x slower function-test 4.3750+-0.1026 ? 4.5165+-0.2005 ? might be 1.0323x slower function-with-eval 162.6516+-3.3443 ^ 152.2882+-0.8766 ^ definitely 1.0681x faster gcse-poly-get-less-obvious 25.6691+-0.1924 25.4257+-0.3659 gcse-poly-get 25.5782+-0.1257 ? 25.5798+-0.2315 ? gcse 6.6815+-0.1137 ^ 6.3845+-0.1405 ^ definitely 1.0465x faster get-by-id-bimorphic-check-structure-elimination-simple 3.4348+-0.1736 3.2612+-0.1268 might be 1.0532x faster get-by-id-bimorphic-check-structure-elimination 8.5407+-0.0198 ^ 8.4349+-0.0716 ^ definitely 1.0125x faster get-by-id-chain-from-try-block 6.8230+-0.1437 ? 6.8412+-0.1416 ? get-by-id-check-structure-elimination 7.8732+-0.0706 ? 8.1191+-0.2068 ? might be 1.0312x slower get-by-id-proto-or-self 21.2505+-2.6854 ? 21.6962+-2.8278 ? might be 1.0210x slower get-by-id-quadmorphic-check-structure-elimination-simple 4.0224+-0.0724 3.8651+-0.0986 might be 1.0407x faster get-by-id-self-or-proto 20.2454+-0.0647 ? 20.5469+-1.2043 ? might be 1.0149x slower get-by-val-out-of-bounds 5.7097+-0.0431 ! 6.0152+-0.0931 ! definitely 1.0535x slower get-by-val-with-string-bimorphic-check-structure-elimination-simple 3.9435+-0.1096 ! 4.2890+-0.1375 ! definitely 1.0876x slower get-by-val-with-string-bimorphic-check-structure-elimination 10.2433+-0.1130 ? 10.2726+-0.0936 ? get-by-val-with-string-chain-from-try-block 8.0193+-0.1578 7.9427+-0.1430 get-by-val-with-string-check-structure-elimination 9.2685+-0.0900 9.2280+-0.1137 get-by-val-with-string-proto-or-self 20.5448+-0.4667 20.5339+-0.5956 get-by-val-with-string-quadmorphic-check-structure-elimination-simple 4.7150+-0.1187 ? 4.8143+-0.0954 ? might be 1.0211x slower get-by-val-with-string-self-or-proto 21.3663+-2.9338 20.5157+-0.4628 might be 1.0415x faster get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 5.2325+-0.1164 ^ 4.7810+-0.0939 ^ definitely 1.0944x faster get-by-val-with-symbol-bimorphic-check-structure-elimination 19.9676+-0.0890 19.8419+-0.1909 get-by-val-with-symbol-chain-from-try-block 8.1800+-0.0900 7.9712+-0.3803 might be 1.0262x faster get-by-val-with-symbol-check-structure-elimination 18.7361+-0.2072 18.7320+-0.1964 get-by-val-with-symbol-proto-or-self 20.4343+-0.4354 ? 20.5740+-0.5204 ? get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 5.8936+-0.1011 5.7819+-0.1352 might be 1.0193x faster get-by-val-with-symbol-self-or-proto 21.5933+-4.1419 ? 21.6102+-2.6039 ? get_callee_monomorphic 3.5992+-0.2105 ? 3.8408+-0.2613 ? might be 1.0671x slower get_callee_polymorphic 4.7248+-0.1203 ? 4.8846+-0.1026 ? might be 1.0338x slower getter-no-activation 5.9008+-0.0548 ? 5.9603+-0.1036 ? might be 1.0101x slower getter-prototype 14.3041+-0.2040 ? 14.3926+-0.1590 ? getter-richards 134.7499+-11.6333 132.7054+-5.2519 might be 1.0154x faster getter 7.5412+-0.0462 ? 7.5735+-0.1087 ? global-object-access-with-mutating-structure 7.8518+-0.3283 ! 8.6069+-0.4020 ! definitely 1.0962x slower global-var-const-infer-fire-from-opt 1.1312+-0.1610 ? 1.2531+-0.1472 ? might be 1.1077x slower global-var-const-infer 1.0692+-0.3143 ? 1.2686+-0.2811 ? might be 1.1864x slower hard-overflow-check-equal 63.1798+-0.1275 62.8108+-0.5283 hard-overflow-check 62.2134+-0.5140 ? 62.2148+-0.3334 ? HashMap-put-get-iterate-keys 33.9208+-0.2968 ? 34.4658+-0.5530 ? might be 1.0161x slower HashMap-put-get-iterate 33.5223+-0.2477 ? 33.9028+-0.3534 ? might be 1.0114x slower HashMap-string-put-get-iterate 37.1035+-0.5784 ? 37.9288+-0.6525 ? might be 1.0222x slower hoist-make-rope 12.1094+-1.5804 ? 13.0396+-1.8299 ? might be 1.0768x slower hoist-poly-check-structure-effectful-loop 6.9391+-0.1021 6.7838+-0.0632 might be 1.0229x faster hoist-poly-check-structure 4.9158+-0.1595 ? 4.9972+-0.0907 ? might be 1.0166x slower imul-double-only 9.0599+-1.6840 ? 9.2332+-0.5450 ? might be 1.0191x slower imul-int-only 10.6528+-0.1494 10.6392+-0.2105 imul-mixed 8.0228+-0.2160 ? 8.1086+-0.2113 ? might be 1.0107x slower in-four-cases 26.8654+-0.0916 26.3740+-0.5325 might be 1.0186x faster in-one-case-false 14.6883+-0.1511 ! 15.0634+-0.0812 ! definitely 1.0255x slower in-one-case-true 14.6577+-0.0993 ! 15.1116+-0.0343 ! definitely 1.0310x slower in-two-cases 15.0054+-0.0999 ! 15.8110+-0.0714 ! definitely 1.0537x slower indexed-properties-in-objects 3.8033+-0.0892 ? 3.8242+-0.1132 ? infer-closure-const-then-mov-no-inline 4.5505+-0.1352 ! 4.9445+-0.1074 ! definitely 1.0866x slower infer-closure-const-then-mov 22.0650+-0.3204 ? 22.2925+-1.0257 ? might be 1.0103x slower infer-closure-const-then-put-to-scope-no-inline 16.5456+-0.1151 ^ 16.0999+-0.2817 ^ definitely 1.0277x faster infer-closure-const-then-put-to-scope 32.2249+-0.8107 ^ 28.9426+-0.1814 ^ definitely 1.1134x faster infer-closure-const-then-reenter-no-inline 73.5766+-0.1130 ? 73.7523+-0.1903 ? infer-closure-const-then-reenter 29.2811+-0.2670 ! 33.6271+-0.5488 ! definitely 1.1484x slower infer-constant-global-property 4.8559+-0.1981 ? 4.8755+-0.1590 ? infer-constant-property 3.3730+-0.1281 ? 3.4031+-0.1743 ? infer-one-time-closure-ten-vars 11.4488+-0.5075 ? 11.4883+-0.3861 ? infer-one-time-closure-two-vars 10.5666+-0.5031 ? 10.8598+-0.5470 ? might be 1.0277x slower infer-one-time-closure 10.7338+-0.4007 ? 10.8314+-0.3708 ? infer-one-time-deep-closure 18.3307+-0.4676 ? 18.3795+-0.7555 ? inline-arguments-access 6.0157+-0.2040 ? 6.1884+-0.1502 ? might be 1.0287x slower inline-arguments-aliased-access 5.9899+-0.1854 ? 6.0927+-0.2045 ? might be 1.0172x slower inline-arguments-local-escape 6.1934+-0.1644 6.1177+-0.2515 might be 1.0124x faster inline-get-scoped-var 5.7775+-0.1014 5.7613+-0.1625 inlined-put-by-id-transition 16.9377+-0.9904 ? 17.5311+-0.4235 ? might be 1.0350x slower inlined-put-by-val-with-string-transition 115.9766+-4.6604 ? 118.2582+-0.7623 ? might be 1.0197x slower inlined-put-by-val-with-symbol-transition 116.1178+-9.2058 111.8193+-3.4399 might be 1.0384x faster int-or-other-abs-then-get-by-val 6.6205+-0.1375 6.6116+-0.0961 int-or-other-abs-zero-then-get-by-val 27.9443+-0.3387 ! 28.6569+-0.0720 ! definitely 1.0255x slower int-or-other-add-then-get-by-val 6.4609+-0.2168 ^ 6.0954+-0.1024 ^ definitely 1.0600x faster int-or-other-add 8.0981+-0.0873 ? 8.3215+-0.1585 ? might be 1.0276x slower int-or-other-div-then-get-by-val 5.1602+-0.1357 5.1204+-0.1832 int-or-other-max-then-get-by-val 5.2025+-0.1517 5.1430+-0.1186 might be 1.0116x faster int-or-other-min-then-get-by-val 4.9172+-0.1269 ? 5.1097+-0.1221 ? might be 1.0391x slower int-or-other-mod-then-get-by-val 4.8389+-0.1115 ? 4.9512+-0.1267 ? might be 1.0232x slower int-or-other-mul-then-get-by-val 4.8830+-0.0997 ! 5.1963+-0.1902 ! definitely 1.0642x slower int-or-other-neg-then-get-by-val 5.8771+-0.1878 5.7354+-0.1138 might be 1.0247x faster int-or-other-neg-zero-then-get-by-val 28.4772+-0.5556 ? 28.8906+-0.2789 ? might be 1.0145x slower int-or-other-sub-then-get-by-val 6.3408+-0.1286 6.1497+-0.2341 might be 1.0311x faster int-or-other-sub 5.2796+-0.1462 ? 5.3297+-0.1275 ? int-overflow-local 6.0464+-0.1756 ? 6.1123+-0.1043 ? might be 1.0109x slower Int16Array-alloc-long-lived 73.1450+-0.6687 ^ 70.6293+-1.7710 ^ definitely 1.0356x faster Int16Array-bubble-sort-with-byteLength 36.2930+-0.2179 36.2793+-0.1688 Int16Array-bubble-sort 36.3560+-0.1658 ? 36.3572+-0.1189 ? Int16Array-load-int-mul 2.0249+-0.0839 ? 2.0892+-0.1268 ? might be 1.0317x slower Int16Array-to-Int32Array-set 75.2527+-1.0461 ? 76.0354+-2.3263 ? might be 1.0104x slower Int32Array-alloc-large 34.0490+-0.6453 34.0247+-0.4496 Int32Array-alloc-long-lived 83.9536+-0.9694 ^ 80.3480+-0.6572 ^ definitely 1.0449x faster Int32Array-alloc 4.6527+-0.0933 4.5983+-0.1536 might be 1.0118x faster Int32Array-Int8Array-view-alloc 9.4547+-0.1914 9.2758+-0.1606 might be 1.0193x faster int52-spill 7.1092+-0.2788 ? 7.4572+-0.3038 ? might be 1.0490x slower Int8Array-alloc-long-lived 62.4456+-1.0135 61.8785+-0.4414 Int8Array-load-with-byteLength 4.8836+-0.1476 ? 4.8891+-0.1560 ? Int8Array-load 4.7660+-0.0898 ? 4.8127+-0.1423 ? integer-divide 14.4896+-0.2894 14.4017+-0.1396 integer-modulo 2.5833+-0.1265 ? 2.8496+-0.1693 ? might be 1.1031x slower is-boolean-fold-tricky 5.6358+-0.1100 ? 5.6436+-0.0808 ? is-boolean-fold 4.0234+-0.1344 ? 4.0401+-0.1631 ? is-function-fold-tricky-internal-function 14.9022+-0.1281 ? 15.0947+-0.1039 ? might be 1.0129x slower is-function-fold-tricky 5.7598+-0.2073 ? 5.8295+-0.1177 ? might be 1.0121x slower is-function-fold 4.0471+-0.1252 4.0319+-0.1155 is-number-fold-tricky 5.5890+-0.1767 ? 5.6860+-0.1026 ? might be 1.0174x slower is-number-fold 4.0576+-0.1135 4.0408+-0.2196 is-object-or-null-fold-functions 4.1698+-0.1452 4.1517+-0.1200 is-object-or-null-fold-less-tricky 5.7382+-0.0864 ? 5.8142+-0.2127 ? might be 1.0132x slower is-object-or-null-fold-tricky 7.9645+-0.0806 ^ 7.5443+-0.0219 ^ definitely 1.0557x faster is-object-or-null-fold 4.0462+-0.1518 ? 4.0738+-0.1225 ? is-object-or-null-trickier-function 5.8414+-0.1284 ? 5.9112+-0.1415 ? might be 1.0119x slower is-object-or-null-trickier-internal-function 15.9977+-0.1393 15.9005+-0.1369 is-object-or-null-tricky-function 5.8483+-0.0732 ? 5.8807+-0.1432 ? is-object-or-null-tricky-internal-function 11.6266+-0.1952 ? 11.6637+-0.1279 ? is-string-fold-tricky 5.7305+-0.1891 5.6989+-0.2431 is-string-fold 4.0202+-0.0796 ? 4.0502+-0.1546 ? is-undefined-fold-tricky 4.6782+-0.0384 ? 4.7892+-0.1314 ? might be 1.0237x slower is-undefined-fold 3.9955+-0.0925 ? 4.0780+-0.1226 ? might be 1.0206x slower JSONP-negative-0 0.4296+-0.0835 ? 0.4580+-0.0976 ? might be 1.0662x slower large-int-captured 6.7280+-0.1849 ? 6.8324+-0.4333 ? might be 1.0155x slower large-int-neg 20.5817+-0.5005 20.3121+-0.1341 might be 1.0133x faster large-int 18.1785+-0.1337 17.9862+-0.3516 might be 1.0107x faster load-varargs-elimination 30.3342+-1.5321 ? 31.1136+-1.6447 ? might be 1.0257x slower logical-not-weird-types 4.8497+-0.1385 ! 5.3120+-0.2154 ! definitely 1.0953x slower logical-not 6.3973+-0.0877 6.3329+-0.0860 might be 1.0102x faster lots-of-fields 16.5394+-0.3302 16.3987+-0.1260 make-indexed-storage 4.3118+-0.3296 ? 4.3774+-0.2267 ? might be 1.0152x slower make-rope-cse 6.5509+-0.0895 ? 6.7700+-0.1543 ? might be 1.0334x slower marsaglia-larger-ints 55.3673+-0.3913 55.3395+-0.2292 marsaglia-osr-entry 27.2646+-0.8140 ? 27.3532+-0.3308 ? math-with-out-of-bounds-array-values 34.4394+-0.3097 ^ 33.3499+-0.4460 ^ definitely 1.0327x faster max-boolean 3.4333+-0.0515 3.4300+-0.1135 method-on-number 24.7396+-1.8520 23.6125+-0.4997 might be 1.0477x faster min-boolean 3.3873+-0.1673 3.3449+-0.1917 might be 1.0127x faster minus-boolean-double 4.3489+-0.2352 4.2557+-0.0988 might be 1.0219x faster minus-boolean 3.3536+-0.1464 ? 3.3582+-0.1640 ? misc-strict-eq 47.7599+-0.6006 47.7305+-0.5065 mod-boolean-double 12.1165+-0.1183 12.0612+-0.1305 mod-boolean 9.2465+-0.0688 9.2065+-0.1301 mul-boolean-double 4.9010+-0.1478 ? 4.9648+-0.0899 ? might be 1.0130x slower mul-boolean 3.5518+-0.1723 ? 3.5878+-0.1431 ? might be 1.0101x slower neg-boolean 4.3962+-0.1260 4.3745+-0.1854 negative-zero-divide 0.6478+-0.1229 0.5942+-0.1275 might be 1.0901x faster negative-zero-modulo 0.5836+-0.0845 0.5787+-0.1289 negative-zero-negate 0.5790+-0.1422 ? 0.6148+-0.1273 ? might be 1.0619x slower nested-function-parsing 75.7827+-2.0952 ? 77.3315+-1.0766 ? might be 1.0204x slower new-array-buffer-dead 152.5742+-1.4982 ? 153.7525+-0.9765 ? new-array-buffer-push 9.8525+-0.1195 ! 10.2212+-0.0460 ! definitely 1.0374x slower new-array-dead 18.9433+-0.1127 ? 19.3508+-1.5242 ? might be 1.0215x slower new-array-push 5.4170+-0.2796 ? 5.5687+-0.1923 ? might be 1.0280x slower no-inline-constructor 53.5675+-0.3636 ^ 52.2318+-0.5637 ^ definitely 1.0256x faster number-test 4.3919+-0.1116 ? 4.4415+-0.0880 ? might be 1.0113x slower object-closure-call 8.1253+-0.2568 8.0228+-0.0383 might be 1.0128x faster object-get-own-property-symbols-on-large-array 5.5113+-0.5720 5.4760+-0.6202 object-test 4.1956+-0.1358 ? 4.2693+-0.1002 ? might be 1.0176x slower obvious-sink-pathology-taken 182.4713+-0.8855 181.1935+-2.9969 obvious-sink-pathology 167.8666+-4.3850 166.0779+-2.4580 might be 1.0108x faster obviously-elidable-new-object 44.2720+-0.7644 44.2031+-1.8942 plus-boolean-arith 3.4180+-0.0574 3.3808+-0.1496 might be 1.0110x faster plus-boolean-double 4.2617+-0.1186 ? 4.3085+-0.1207 ? might be 1.0110x slower plus-boolean 3.2759+-0.1022 ? 3.2868+-0.1734 ? poly-chain-access-different-prototypes-simple 4.8352+-0.0633 ! 5.1346+-0.2249 ! definitely 1.0619x slower poly-chain-access-different-prototypes 5.3225+-0.0671 ^ 5.1052+-0.0862 ^ definitely 1.0426x faster poly-chain-access-simpler 4.9485+-0.0256 ! 5.1453+-0.1577 ! definitely 1.0398x slower poly-chain-access 5.2739+-0.1800 4.9586+-0.1838 might be 1.0636x faster poly-stricteq 78.6915+-0.1928 ! 82.1193+-0.2212 ! definitely 1.0436x slower polymorphic-array-call 1.8667+-0.2376 1.8623+-0.2726 polymorphic-get-by-id 4.1716+-0.1100 3.9703+-0.1156 might be 1.0507x faster polymorphic-put-by-id 38.7449+-2.8137 38.4503+-4.0655 polymorphic-put-by-val-with-string 37.2924+-1.0188 ? 40.3384+-3.7451 ? might be 1.0817x slower polymorphic-put-by-val-with-symbol 39.3906+-4.3728 ? 40.4742+-3.8606 ? might be 1.0275x slower polymorphic-structure 25.8304+-0.1406 ^ 24.2927+-0.0713 ^ definitely 1.0633x faster polyvariant-monomorphic-get-by-id 11.4945+-0.6282 ? 11.7067+-0.3635 ? might be 1.0185x slower proto-getter-access 10.1514+-0.1512 ? 10.3228+-0.2461 ? might be 1.0169x slower prototype-access-with-mutating-prototype 7.6656+-0.6158 ? 8.1954+-0.3658 ? might be 1.0691x slower put-by-id-replace-and-transition 12.5414+-0.3397 ? 12.9879+-0.2502 ? might be 1.0356x slower put-by-id-slightly-polymorphic 3.6099+-0.1486 3.5972+-0.0818 put-by-id 18.7042+-0.2377 18.4930+-0.2698 might be 1.0114x faster put-by-val-direct 0.5768+-0.1012 ? 0.6157+-0.1123 ? might be 1.0674x slower put-by-val-large-index-blank-indexing-type 8.4625+-0.4363 ? 8.6149+-0.2175 ? might be 1.0180x slower put-by-val-machine-int 3.4620+-0.2369 ? 3.6968+-0.0885 ? might be 1.0678x slower put-by-val-with-string-replace-and-transition 18.9994+-0.5041 ? 19.3070+-0.4401 ? might be 1.0162x slower put-by-val-with-string-slightly-polymorphic 4.4488+-0.1892 ? 4.6313+-0.1743 ? might be 1.0410x slower put-by-val-with-string 19.2207+-0.3108 ? 19.6606+-0.3324 ? might be 1.0229x slower put-by-val-with-symbol-replace-and-transition 20.7763+-0.5414 ! 21.8465+-0.3135 ! definitely 1.0515x slower put-by-val-with-symbol-slightly-polymorphic 4.8909+-0.1281 4.6638+-0.1186 might be 1.0487x faster put-by-val-with-symbol 19.5458+-0.1263 ? 20.0519+-0.5946 ? might be 1.0259x slower rare-osr-exit-on-local 16.9884+-0.1463 16.8224+-0.0587 register-pressure-from-osr 27.8571+-0.1132 ? 28.1307+-0.1672 ? repeat-multi-get-by-offset 30.0745+-0.2501 ? 30.3157+-0.1658 ? setter-prototype 11.2128+-0.3063 ? 11.6188+-0.4451 ? might be 1.0362x slower setter 7.1215+-0.2129 6.8160+-0.1308 might be 1.0448x faster simple-activation-demo 35.2613+-0.1259 ^ 34.6395+-0.2107 ^ definitely 1.0180x faster simple-getter-access 14.0087+-0.0789 ? 14.4598+-0.4887 ? might be 1.0322x slower simple-poly-call-nested 8.5064+-0.1297 ! 9.2664+-0.2655 ! definitely 1.0893x slower simple-poly-call 1.6828+-0.1348 ? 1.8630+-0.1044 ? might be 1.1071x slower sin-boolean 21.3919+-0.9346 20.5170+-0.4942 might be 1.0426x faster singleton-scope 90.3631+-0.9858 ^ 87.5920+-0.2499 ^ definitely 1.0316x faster sink-function 13.5897+-0.2451 ? 13.8952+-0.1970 ? might be 1.0225x slower sink-huge-activation 21.1929+-0.7882 ? 21.4627+-0.5573 ? might be 1.0127x slower sinkable-new-object-dag 87.9745+-1.7556 87.6378+-1.6548 sinkable-new-object-taken 69.4991+-0.5855 ? 69.6013+-0.5169 ? sinkable-new-object 48.3228+-0.8083 ? 49.4448+-2.6720 ? might be 1.0232x slower slow-array-profile-convergence 3.9591+-0.2655 3.8532+-0.2752 might be 1.0275x faster slow-convergence 3.6533+-0.2022 ? 3.8285+-0.1742 ? might be 1.0479x slower slow-ternaries 32.9897+-0.0626 ! 34.0713+-0.3212 ! definitely 1.0328x slower sorting-benchmark 25.5718+-0.7325 ? 26.6539+-1.0240 ? might be 1.0423x slower sparse-conditional 1.6493+-0.1244 ? 1.7526+-0.1109 ? might be 1.0626x slower splice-to-remove 20.0781+-0.4161 19.8680+-0.2761 might be 1.0106x faster string-char-code-at 20.6995+-0.1747 ! 21.3597+-0.1136 ! definitely 1.0319x slower string-concat-object 3.2504+-0.0899 ? 3.3731+-0.1358 ? might be 1.0378x slower string-concat-pair-object 3.1163+-0.1525 ? 3.4258+-0.2881 ? might be 1.0993x slower string-concat-pair-simple 17.2665+-0.2706 ? 17.5527+-0.1602 ? might be 1.0166x slower string-concat-simple 18.0414+-0.4277 18.0045+-0.7267 string-cons-repeat 11.6718+-0.1587 ! 12.0123+-0.0694 ! definitely 1.0292x slower string-cons-tower 11.1043+-0.1615 10.9380+-0.0552 might be 1.0152x faster string-equality 25.3095+-0.0891 ^ 23.3574+-0.1021 ^ definitely 1.0836x faster string-get-by-val-big-char 9.9627+-0.3243 ! 10.9963+-0.3312 ! definitely 1.1037x slower string-get-by-val-out-of-bounds-insane 5.1257+-0.2642 5.0955+-0.2916 string-get-by-val-out-of-bounds 6.9218+-0.0982 ? 6.9869+-0.1603 ? string-get-by-val 4.8026+-0.1040 ? 4.8405+-0.1285 ? string-hash 2.8820+-0.0512 ? 2.8932+-0.3495 ? string-long-ident-equality 20.6058+-0.2778 ^ 19.1530+-0.2745 ^ definitely 1.0759x faster string-out-of-bounds 15.0514+-0.0887 ! 15.5713+-0.4121 ! definitely 1.0345x slower string-repeat-arith 46.3447+-1.1603 44.9937+-1.7432 might be 1.0300x faster string-sub 89.1478+-1.8926 88.8824+-2.3440 string-test 4.3516+-0.2229 ? 4.5216+-0.1996 ? might be 1.0391x slower string-var-equality 46.4541+-0.1841 ! 61.1758+-1.8536 ! definitely 1.3169x slower structure-hoist-over-transitions 3.3184+-0.1690 ! 3.6569+-0.0667 ! definitely 1.1020x slower substring-concat-weird 59.9553+-0.6730 ? 61.1544+-1.1429 ? might be 1.0200x slower substring-concat 65.3174+-0.2529 ! 66.1031+-0.3448 ! definitely 1.0120x slower substring 71.8577+-0.2806 ? 72.2153+-0.6596 ? switch-char-constant 3.3586+-0.1165 ? 3.3975+-0.1435 ? might be 1.0116x slower switch-char 8.0619+-0.1467 7.9807+-0.1040 might be 1.0102x faster switch-constant 14.2111+-2.0979 13.6503+-0.2539 might be 1.0411x faster switch-string-basic-big-var 32.1525+-0.2322 ? 32.4703+-0.6062 ? switch-string-basic-big 30.6976+-0.7711 29.0456+-1.1405 might be 1.0569x faster switch-string-basic-var 29.6719+-0.8855 ! 32.8151+-1.3267 ! definitely 1.1059x slower switch-string-basic 19.8212+-0.6875 ? 22.0967+-1.5976 ? might be 1.1148x slower switch-string-big-length-tower-var 27.9340+-0.1611 ! 28.6083+-0.4354 ! definitely 1.0241x slower switch-string-length-tower-var 21.3177+-0.4208 ? 21.4591+-0.0749 ? switch-string-length-tower 14.8754+-0.1755 ? 15.4775+-0.4466 ? might be 1.0405x slower switch-string-short 14.8463+-0.0715 ! 15.3393+-0.1337 ! definitely 1.0332x slower switch 17.3847+-2.4054 17.2663+-1.9261 tear-off-arguments-simple 4.4540+-0.2295 4.4034+-0.2286 might be 1.0115x faster tear-off-arguments 6.4727+-0.5658 ? 6.7120+-0.3017 ? might be 1.0370x slower temporal-structure 18.0623+-0.2414 ^ 16.9745+-0.2993 ^ definitely 1.0641x faster to-int32-boolean 21.6496+-0.1473 ? 21.6923+-0.2134 ? try-catch-get-by-val-cloned-arguments 20.9556+-0.2850 ? 20.9960+-0.0663 ? try-catch-get-by-val-direct-arguments 9.8060+-0.1460 ? 10.1013+-0.2921 ? might be 1.0301x slower try-catch-get-by-val-scoped-arguments 11.6102+-0.5341 11.3101+-0.3027 might be 1.0265x faster typed-array-get-set-by-val-profiling 35.5653+-1.1196 ^ 33.4606+-0.7347 ^ definitely 1.0629x faster undefined-property-access 482.5085+-3.7222 ! 491.7103+-4.4446 ! definitely 1.0191x slower undefined-test 4.6265+-0.3027 ? 4.6274+-0.1438 ? unprofiled-licm 24.3152+-0.1487 ? 24.3284+-0.0950 ? varargs-call 18.3865+-0.1909 ! 18.9517+-0.3574 ! definitely 1.0307x slower varargs-construct-inline 37.1505+-1.0489 ? 37.2438+-0.1649 ? varargs-construct 30.1803+-0.4591 ! 30.9513+-0.2914 ! definitely 1.0255x slower varargs-inline 12.1935+-0.2009 ! 12.6351+-0.2187 ! definitely 1.0362x slower varargs-strict-mode 14.1397+-0.0786 ! 15.0109+-0.1786 ! definitely 1.0616x slower varargs 14.0467+-0.2247 ! 14.8665+-0.0940 ! definitely 1.0584x slower weird-inlining-const-prop 2.8640+-0.1563 ? 3.0890+-0.1133 ? might be 1.0786x slower <geometric> 11.8475+-0.0334 ! 11.9817+-0.0319 ! definitely 1.0113x slower Baseline CalleeSaves AsmBench: bigfib.cpp 700.0009+-6.5306 ? 706.4688+-4.3543 ? cray.c 650.5345+-9.2952 647.0410+-3.2439 dry.c 716.3133+-0.7882 691.8907+-81.1479 might be 1.0353x faster FloatMM.c 960.8315+-1.6982 959.8122+-1.1292 gcc-loops.cpp 6222.5687+-4.7303 ? 6227.8917+-22.8899 ? n-body.c 1745.5381+-1.6220 1745.1699+-1.1878 Quicksort.c 594.2045+-12.2319 ? 595.1923+-9.2675 ? stepanov_container.cpp 5130.1576+-24.2332 5067.3857+-42.9528 might be 1.0124x faster Towers.c 427.0610+-3.6739 ^ 419.5034+-1.3993 ^ definitely 1.0180x faster <geometric> 1179.8745+-0.8660 1171.8219+-16.0531 might be 1.0069x faster Baseline CalleeSaves CompressionBench: huffman 85.0293+-3.4450 ? 85.4495+-2.1356 ? arithmetic-simple 452.6348+-1.5141 ^ 449.1195+-1.2334 ^ definitely 1.0078x faster arithmetic-precise 379.4055+-7.3183 378.2310+-3.5969 arithmetic-complex-precise 375.4926+-1.2018 ? 376.4345+-2.7825 ? arithmetic-precise-order-0 462.6586+-1.1742 ^ 460.2200+-1.0859 ^ definitely 1.0053x faster arithmetic-precise-order-1 448.5193+-4.0628 ^ 433.0286+-2.6180 ^ definitely 1.0358x faster arithmetic-precise-order-2 511.0580+-5.8973 502.1868+-7.1247 might be 1.0177x faster arithmetic-simple-order-1 524.5217+-3.1771 519.0538+-5.7873 might be 1.0105x faster arithmetic-simple-order-2 590.3109+-2.0380 ^ 576.4360+-3.0474 ^ definitely 1.0241x faster lz-string 439.1639+-9.8846 ? 446.5676+-8.0396 ? might be 1.0169x slower <geometric> 388.8524+-2.4690 385.8004+-1.2727 might be 1.0079x faster Baseline CalleeSaves Geomean of preferred means: <scaled-result> 81.8188+-0.3020 ? 82.0980+-0.2888 ? might be 1.0034x slower
WebKit Commit Bot
Comment 15 2015-09-09 12:29:44 PDT
Attachment 260867 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/jit/JIT.cpp:497: One space before end of line comments [whitespace/comments] [5] Total errors found: 1 in 59 files If any of these errors are false positives, please file a bug against check-webkit-style.
Michael Saboff
Comment 16 2015-09-09 12:33:53 PDT
(In reply to comment #15) > Attachment 260867 [details] did not pass style-queue: > > > ERROR: Source/JavaScriptCore/jit/JIT.cpp:497: One space before end of line > comments [whitespace/comments] [5] > Total errors found: 1 in 59 files > > > If any of these errors are false positives, please file a bug against > check-webkit-style. Fixed locally.
Filip Pizlo
Comment 17 2015-09-09 12:56:02 PDT
Comment on attachment 260867 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=260867&action=review > Source/JavaScriptCore/ftl/FTLLink.cpp:58 > // FIXME: Need to know the real frame register count. > // https://bugs.webkit.org/show_bug.cgi?id=125727 > - state.jitCode->common.frameRegisterCount = 1000; > + state.jitCode->common.frameRegisterCount = state.jitCode->stackmaps.stackSizeForLocals() / sizeof(void*); Does this change resolve the FIXME above?
Michael Saboff
Comment 18 2015-09-09 12:58:30 PDT
(In reply to comment #17) > Comment on attachment 260867 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=260867&action=review > > > Source/JavaScriptCore/ftl/FTLLink.cpp:58 > > // FIXME: Need to know the real frame register count. > > // https://bugs.webkit.org/show_bug.cgi?id=125727 > > - state.jitCode->common.frameRegisterCount = 1000; > > + state.jitCode->common.frameRegisterCount = state.jitCode->stackmaps.stackSizeForLocals() / sizeof(void*); > > Does this change resolve the FIXME above? Yes, it does. The change was also posted to https://bugs.webkit.org/show_bug.cgi?id=125727. I'll remove the FIXME comment.
Michael Saboff
Comment 19 2015-09-09 15:18:21 PDT
Created attachment 260880 [details] Patch with suggested fixes and fix for win32 build
Filip Pizlo
Comment 20 2015-09-10 10:01:04 PDT
Comment on attachment 260880 [details] Patch with suggested fixes and fix for win32 build I buy it!
Michael Saboff
Comment 21 2015-09-10 10:47:24 PDT
Note You need to log in before you can comment on or make changes to this bug.