WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 143822
[EFL] Enable FTL JIT by default on X86_64
https://bugs.webkit.org/show_bug.cgi?id=143822
Summary
[EFL] Enable FTL JIT by default on X86_64
Csaba Osztrogonác
Reported
2015-04-16 05:18:38 PDT
FTL JIT is quite stable, I know only 2 bugs cause failures (crashes!) with it:
bug143087
and
bug143089
After fixing them, we might want to enable FTL JIT by default.
Attachments
Patch
(2.84 KB, patch)
2015-04-16 05:22 PDT
,
Csaba Osztrogonác
no flags
Details
Formatted Diff
Diff
Patch
(2.83 KB, patch)
2015-04-16 06:43 PDT
,
Csaba Osztrogonác
no flags
Details
Formatted Diff
Diff
X86_64 Linux performance results
(50.55 KB, text/plain)
2015-04-16 08:06 PDT
,
Csaba Osztrogonác
no flags
Details
X86_64 OS X performance results
(49.86 KB, text/plain)
2015-04-16 08:11 PDT
,
Csaba Osztrogonác
no flags
Details
Patch
(2.83 KB, patch)
2015-10-27 10:15 PDT
,
Csaba Osztrogonác
no flags
Details
Formatted Diff
Diff
Patch
(3.42 KB, patch)
2015-10-27 11:09 PDT
,
Csaba Osztrogonác
no flags
Details
Formatted Diff
Diff
new X86_64 Linux performance results with LLVM 3.6
(63.03 KB, text/plain)
2015-11-02 08:36 PST
,
Csaba Osztrogonác
no flags
Details
new X86_64 Linux performance results with LLVM 3.7
(62.96 KB, text/plain)
2015-11-02 08:37 PST
,
Csaba Osztrogonác
no flags
Details
Patch
(8.54 KB, patch)
2015-11-19 06:55 PST
,
Csaba Osztrogonác
no flags
Details
Formatted Diff
Diff
Show Obsolete
(4)
View All
Add attachment
proposed patch, testcase, etc.
Csaba Osztrogonác
Comment 1
2015-04-16 05:22:03 PDT
Created
attachment 250914
[details]
Patch The patch is ready for review, but not ready for landing, because it depends on
bug143604
. And we shouldn't enable FTL until we have crashes -
bug143087
and
bug143089
Csaba Osztrogonác
Comment 2
2015-04-16 06:43:27 PDT
Created
attachment 250919
[details]
Patch
bug143604
is fixed, uploading again to make EFL EWS green
Csaba Osztrogonác
Comment 3
2015-04-16 08:06:48 PDT
Created
attachment 250923
[details]
X86_64 Linux performance results summary: - 1.0920x slower - SunSpider - 1.2151x faster - LongSpider - 1.0805x slower - V8Spider - 1.2307x faster - Octane - 1.0174x faster - Kraken - 1.0388x faster - JSRegress The progression is promising on LongSpider and Octane, but the regression on SunSpider and V8Spider isn't so good.
Csaba Osztrogonác
Comment 4
2015-04-16 08:11:20 PDT
Created
attachment 250924
[details]
X86_64 OS X performance results I ran performance tests on a Mac Mavericks too to be able compare Linux and OS X results. X86_64 OS X performance results: summary: - 1.0225x slower - SunSpider - 1.1883x faster - LongSpider - 1.0034x slower - V8Spider - 1.2322x faster - Octane - 1.0153x faster - Kraken - 1.0741x faster - JSRegress It seems there isn't so big performance regression on SunSpider and V8Spider benchmarks on Mac. It would be great to find the reason.
Yusuke Suzuki
Comment 5
2015-10-17 18:59:12 PDT
I guess this is due to memory allocation in LLVM. LLVM utilizes system allocator instead of bmalloc. What do you think about this?
Yusuke Suzuki
Comment 6
2015-10-17 22:17:28 PDT
Retaked benchmark results on ToT. The performance regression seems the same to the previous take; Octane/LongSpider pose nice performance improvement. But V8Spider/SunSpider pose large performance regression. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on gpgpu. VMs tested: "NonFTL" at /home/yusuke/dev/WebKit/WebKitBuild/non-ftl/Release/bin/jsc "FTL" at /home/yusuke/dev/WebKit/WebKitBuild/llvm37/Release/bin/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. NonFTL FTL SunSpider: 3d-cube 7.0031+-0.3204 ? 7.6395+-2.1885 ? might be 1.0909x slower 3d-morph 12.9608+-0.0928 ? 13.3483+-0.3445 ? might be 1.0299x slower 3d-raytrace 7.9007+-0.0733 ? 10.0010+-3.8079 ? might be 1.2658x slower access-binary-trees 2.5824+-0.0672 ? 2.7188+-0.0858 ? might be 1.0528x slower access-fannkuch 7.0578+-0.7296 ? 8.4717+-1.5839 ? might be 1.2003x slower access-nbody 3.3753+-0.0972 ? 3.4233+-0.1286 ? might be 1.0142x slower access-nsieve 3.5013+-0.0309 ? 3.7796+-0.2715 ? might be 1.0795x slower bitops-3bit-bits-in-byte 1.3780+-0.1066 ? 1.7532+-0.3534 ? might be 1.2723x slower bitops-bits-in-byte 2.7602+-0.1410 ! 4.7855+-0.1766 ! definitely 1.7338x slower bitops-bitwise-and 2.5574+-0.0444 ? 2.6218+-0.0733 ? might be 1.0252x slower bitops-nsieve-bits 3.5963+-0.0765 ! 3.8878+-0.1614 ! definitely 1.0810x slower controlflow-recursive 2.6783+-0.0644 ! 4.8235+-1.6216 ! definitely 1.8010x slower crypto-aes 5.3835+-0.0722 ! 5.5342+-0.0474 ! definitely 1.0280x slower crypto-md5 3.1453+-0.1381 ? 3.6224+-0.5258 ? might be 1.1517x slower crypto-sha1 2.8336+-0.0965 ! 5.0596+-0.8193 ! definitely 1.7856x slower date-format-tofte 10.8575+-0.4859 ? 11.3693+-0.2142 ? might be 1.0471x slower date-format-xparb 6.8826+-0.0579 ? 6.9730+-0.1341 ? might be 1.0131x slower math-cordic 3.4540+-0.0422 ! 4.2343+-0.7306 ! definitely 1.2259x slower math-partial-sums 8.7980+-0.0949 8.7950+-0.1120 math-spectral-norm 2.5347+-0.0147 ? 3.0671+-0.6926 ? might be 1.2100x slower regexp-dna 7.8980+-0.0575 7.8111+-0.2034 might be 1.0111x faster string-base64 4.9125+-0.0321 ? 4.9340+-0.0284 ? string-fasta 7.7495+-0.0210 ? 8.5035+-0.7953 ? might be 1.0973x slower string-tagcloud 10.6423+-0.1593 10.4427+-0.1533 might be 1.0191x faster string-unpack-code 24.1935+-0.6388 ? 25.2277+-0.5744 ? might be 1.0427x slower string-validate-input 5.0146+-0.0712 ? 6.1221+-1.6783 ? might be 1.2209x slower <arithmetic> 6.2173+-0.0474 ! 6.8827+-0.1961 ! definitely 1.1070x slower NonFTL FTL LongSpider: 3d-cube 1421.5816+-101.6784 ^ 1011.7004+-271.4847 ^ definitely 1.4051x faster 3d-morph 2524.6907+-37.5970 2468.2552+-34.0509 might be 1.0229x faster 3d-raytrace 921.1516+-26.1127 893.2654+-33.3576 might be 1.0312x faster access-binary-trees 1164.2353+-21.0705 ^ 1057.8945+-5.6713 ^ definitely 1.1005x faster access-fannkuch 480.3762+-18.3591 ^ 390.0820+-26.7255 ^ definitely 1.2315x faster access-nbody 860.0651+-3.9516 ^ 664.8162+-36.0199 ^ definitely 1.2937x faster access-nsieve 624.7917+-24.1613 ^ 437.4225+-6.0898 ^ definitely 1.4283x faster bitops-3bit-bits-in-byte 57.4100+-1.0083 ^ 45.7519+-1.7314 ^ definitely 1.2548x faster bitops-bits-in-byte 164.7607+-3.9614 ^ 103.9333+-4.2542 ^ definitely 1.5853x faster bitops-nsieve-bits 714.7778+-37.1529 ^ 455.0768+-28.5406 ^ definitely 1.5707x faster controlflow-recursive 643.0680+-28.9715 ^ 557.9988+-11.1653 ^ definitely 1.1525x faster crypto-aes 1180.1093+-7.7853 ^ 708.4333+-14.4786 ^ definitely 1.6658x faster crypto-md5 808.1646+-5.1983 ^ 615.3820+-2.0084 ^ definitely 1.3133x faster crypto-sha1 1227.3850+-137.3732 ^ 836.2322+-34.3700 ^ definitely 1.4678x faster date-format-tofte 924.3218+-20.0141 909.4755+-22.4284 might be 1.0163x faster date-format-xparb 1043.9988+-107.5824 975.6707+-51.2811 might be 1.0700x faster hash-map 208.7946+-10.9477 196.4968+-13.5101 might be 1.0626x faster math-cordic 1136.6967+-18.4573 ^ 604.5162+-20.2465 ^ definitely 1.8803x faster math-partial-sums 964.1931+-34.1680 916.8834+-27.5346 might be 1.0516x faster math-spectral-norm 1346.2968+-15.5276 ^ 917.4138+-19.9873 ^ definitely 1.4675x faster string-base64 406.9139+-6.0058 404.2910+-13.7856 string-fasta 575.6017+-8.7337 554.9366+-122.4603 might be 1.0372x faster string-tagcloud 230.5507+-4.8234 ? 234.7934+-13.8767 ? might be 1.0184x slower <geometric> 663.7911+-4.7401 ^ 533.9095+-9.1334 ^ definitely 1.2433x faster NonFTL FTL V8Spider: crypto 61.1033+-0.3205 ! 76.1574+-11.5123 ! definitely 1.2464x slower deltablue 77.7545+-2.7002 ! 91.4611+-7.4704 ! definitely 1.1763x slower earley-boyer 52.7540+-0.1628 ? 58.2139+-13.1046 ? might be 1.1035x slower raytrace 35.2892+-0.5670 ! 42.7130+-4.3118 ! definitely 1.2104x slower regexp 83.9237+-0.9407 83.0450+-2.9677 might be 1.0106x faster richards 73.7545+-3.1539 ^ 64.0198+-1.3773 ^ definitely 1.1521x faster splay 37.3716+-0.9444 ! 42.5600+-3.7822 ! definitely 1.1388x slower <geometric> 57.3673+-0.3011 ! 62.8298+-1.3684 ! definitely 1.0952x slower NonFTL FTL Octane: encrypt 0.31836+-0.00603 ^ 0.23572+-0.00424 ^ definitely 1.3506x faster decrypt 5.72300+-0.01556 ^ 4.04778+-0.06852 ^ definitely 1.4139x faster deltablue x2 0.39609+-0.00729 ^ 0.18240+-0.00291 ^ definitely 2.1716x faster earley 0.60216+-0.00414 ^ 0.38777+-0.00902 ^ definitely 1.5529x faster boyer 8.08088+-0.04495 ^ 6.00421+-0.11924 ^ definitely 1.3459x faster navier-stokes x2 7.00945+-0.02944 ^ 5.28166+-0.03552 ^ definitely 1.3271x faster raytrace x2 3.00630+-0.01760 ^ 1.17410+-0.02495 ^ definitely 2.5605x faster richards x2 0.17540+-0.00195 ^ 0.11165+-0.00157 ^ definitely 1.5710x faster splay x2 0.49268+-0.00877 ^ 0.43660+-0.01566 ^ definitely 1.1284x faster regexp x2 30.06968+-0.33867 ? 30.40452+-0.93945 ? might be 1.0111x slower pdfjs x2 47.52078+-0.95498 ? 49.43740+-2.89588 ? might be 1.0403x slower mandreel x2 99.52367+-0.97570 ^ 56.29402+-3.97316 ^ definitely 1.7679x faster gbemu x2 48.92812+-0.40105 45.49597+-8.00832 might be 1.0754x faster closure 0.75874+-0.03377 0.74348+-0.00504 might be 1.0205x faster jquery 9.74666+-0.07306 9.59162+-0.09645 might be 1.0162x faster box2d x2 14.57406+-0.47703 ^ 13.52207+-0.39216 ^ definitely 1.0778x faster zlib x2 570.22791+-52.50757 ^ 425.74506+-32.31131 ^ definitely 1.3394x faster typescript x2 882.28790+-12.69106 ? 902.12482+-21.54151 ? might be 1.0225x slower <geometric> 9.22350+-0.06126 ^ 6.96035+-0.13693 ^ definitely 1.3251x faster NonFTL FTL Kraken: ai-astar 196.404+-1.486 ^ 165.669+-18.605 ^ definitely 1.1855x faster audio-beat-detection 83.691+-0.566 ^ 66.552+-0.760 ^ definitely 1.2575x faster audio-dft 115.363+-1.195 ^ 81.591+-1.271 ^ definitely 1.4139x faster audio-fft 68.174+-1.033 ^ 50.221+-0.071 ^ definitely 1.3575x faster audio-oscillator 89.944+-2.512 ^ 79.610+-3.397 ^ definitely 1.1298x faster imaging-darkroom 212.694+-0.020 ^ 109.313+-4.865 ^ definitely 1.9457x faster imaging-desaturate 112.130+-1.704 ^ 70.681+-4.182 ^ definitely 1.5864x faster imaging-gaussian-blur 216.575+-8.902 ^ 118.781+-7.521 ^ definitely 1.8233x faster json-parse-financial 61.885+-2.948 ? 62.616+-3.969 ? might be 1.0118x slower json-stringify-tinderbox 31.723+-0.269 31.658+-0.333 stanford-crypto-aes 64.064+-0.853 ^ 53.477+-0.951 ^ definitely 1.1980x faster stanford-crypto-ccm 50.024+-3.442 ? 51.031+-2.134 ? might be 1.0201x slower stanford-crypto-pbkdf2 130.455+-9.656 120.043+-6.722 might be 1.0867x faster stanford-crypto-sha256-iterative 48.598+-1.092 ^ 44.878+-0.875 ^ definitely 1.0829x faster <arithmetic> 105.837+-1.162 ^ 79.009+-1.307 ^ definitely 1.3396x faster NonFTL FTL JSRegress: string-get-by-val-big-char 7.9230+-0.1402 ? 9.0322+-2.5162 ? might be 1.1400x slower slow-convergence 3.1495+-0.0667 ? 3.2338+-0.0433 ? might be 1.0268x slower int-or-other-abs-zero-then-get-by-val 26.1489+-0.3158 ? 26.4230+-0.1396 ? might be 1.0105x slower polymorphic-put-by-val-with-string 82.4227+-4.2484 ^ 51.3531+-0.1211 ^ definitely 1.6050x faster switch-string-basic 16.7052+-0.5414 ? 16.8552+-0.4516 ? integer-modulo 2.2030+-0.0160 ? 4.2192+-4.1046 ? might be 1.9152x slower fold-double-to-int 19.7263+-0.6474 ^ 16.4562+-0.2682 ^ definitely 1.1987x faster is-object-or-null-trickier-internal-function 11.6105+-0.1392 ? 14.0497+-3.2970 ? might be 1.2101x slower setter-prototype 22.4247+-0.8431 ^ 7.5010+-0.5577 ^ definitely 2.9896x faster adapt-to-double-divide 19.1946+-0.0617 ^ 17.0082+-0.0867 ^ definitely 1.1285x faster hard-overflow-check-equal 122.2372+-6.2229 ^ 40.6916+-1.9013 ^ definitely 3.0040x faster tear-off-arguments 5.0728+-0.4917 ? 5.2469+-0.4842 ? might be 1.0343x slower get-by-val-with-symbol-bimorphic-check-structure-elimination 14.0045+-0.0999 ! 15.2277+-0.3971 ! definitely 1.0873x slower polymorphic-get-by-id 3.2492+-0.0450 ? 4.0665+-0.8253 ? might be 1.2515x slower is-object-or-null-fold-tricky 5.5211+-0.1851 ! 6.4135+-0.1128 ! definitely 1.1616x slower inline-arguments-local-escape 4.6502+-0.0690 ! 4.7639+-0.0215 ! definitely 1.0245x slower int-or-other-sub 4.2678+-0.0560 ? 4.8489+-1.1607 ? might be 1.1362x slower new-array-dead 120.0605+-2.8918 ^ 16.8080+-0.4356 ^ definitely 7.1431x faster rare-osr-exit-on-local 14.7955+-0.0419 ! 15.9777+-0.7006 ! definitely 1.0799x slower obvious-sink-pathology 146.3562+-2.2884 ^ 38.7897+-1.3060 ^ definitely 3.7731x faster infer-one-time-closure 23.7234+-0.1996 ^ 9.7617+-0.5667 ^ definitely 2.4303x faster in-one-case-true 11.0164+-0.0535 ! 14.5066+-2.8611 ! definitely 1.3168x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 25.6621+-1.8061 ? 26.3530+-0.6119 ? might be 1.0269x slower infer-closure-const-then-reenter-no-inline 78.7333+-3.3335 ^ 61.9983+-0.8914 ^ definitely 1.2699x faster global-object-access-with-mutating-structure 7.1567+-0.0293 ^ 6.7306+-0.0467 ^ definitely 1.0633x faster array-prototype-reduce 94.0864+-2.2384 ! 108.8960+-9.3993 ! definitely 1.1574x slower call-spread-apply 38.6299+-2.1218 ? 43.0335+-8.4209 ? might be 1.1140x slower destructuring-arguments 241.4147+-29.2420 220.8710+-16.5747 might be 1.0930x faster string-concat-object 2.6700+-0.0349 ? 2.7335+-0.2229 ? might be 1.0238x slower arguments-named-and-reflective 35.7427+-0.9618 ^ 11.6185+-0.1802 ^ definitely 3.0764x faster singleton-scope 91.5198+-0.3237 ^ 76.9550+-1.2346 ^ definitely 1.1893x faster sparse-conditional 1.4257+-0.0860 ! 1.5793+-0.0125 ! definitely 1.1078x slower is-string-fold-tricky 3.8311+-0.0253 ! 4.8519+-0.5780 ! definitely 1.2665x slower splice-to-remove 19.1110+-0.8846 18.5847+-0.5808 might be 1.0283x faster assign-custom-setter 4.7272+-0.0288 ? 4.7630+-0.0917 ? slow-array-profile-convergence 3.4962+-0.0250 3.4913+-0.2318 proto-getter-access 14.3912+-0.3999 ^ 9.2745+-0.5763 ^ definitely 1.5517x faster direct-arguments-getbyval 1.3553+-0.0231 ? 1.5854+-0.2692 ? might be 1.1698x slower fold-put-by-id-to-multi-put-by-offset 10.2091+-0.9726 ? 11.4528+-1.5679 ? might be 1.1218x slower to-int32-boolean 16.1522+-0.3958 ? 16.6697+-0.5955 ? might be 1.0320x slower is-object-or-null-fold-functions 3.5373+-0.0429 ? 3.9329+-0.5567 ? might be 1.1118x slower Float32Array-matrix-mult 5.6401+-0.1244 ? 5.6818+-0.0763 ? register-pressure-from-osr 22.1398+-0.0307 ? 22.7104+-0.8037 ? might be 1.0258x slower new-array-buffer-dead 117.0670+-0.6611 ^ 110.4128+-2.7039 ^ definitely 1.0603x faster infer-closure-const-then-put-to-scope-no-inline 16.0513+-0.0558 ^ 14.2435+-0.0619 ^ definitely 1.1269x faster ArrayBuffer-DataView-alloc-large-long-lived 38.0132+-0.6654 ? 38.3163+-0.5032 ? put-by-val-with-symbol-slightly-polymorphic 3.3718+-0.0803 ! 4.5275+-0.0700 ! definitely 1.3428x slower double-to-int32-typed-array-no-inline 2.4932+-0.0910 ? 3.3647+-1.0290 ? might be 1.3495x slower put-by-val-with-string-replace-and-transition 13.1211+-0.1222 ! 14.2885+-0.7129 ! definitely 1.0890x slower getter-richards 107.1147+-24.4534 ? 113.4538+-15.1403 ? might be 1.0592x slower new-array-push 4.3075+-0.0930 ? 4.7010+-0.7529 ? might be 1.0914x slower infer-closure-const-then-put-to-scope 25.8068+-0.6282 25.7345+-0.2278 array-splice-contiguous 49.4340+-3.0239 ? 50.1680+-2.5496 ? might be 1.0148x slower ftl-library-inlining-dataview 78.2460+-5.0498 ? 78.6257+-0.0129 ? indexed-properties-in-objects 3.0803+-0.0430 ? 3.6220+-0.7979 ? might be 1.1759x slower div-boolean-double 5.4830+-0.0834 ? 5.8000+-0.2868 ? might be 1.0578x slower is-boolean-fold 3.4581+-0.0102 ? 3.7738+-0.3753 ? might be 1.0913x slower int-or-other-neg-then-get-by-val 4.8244+-0.0874 ? 5.4515+-1.1126 ? might be 1.1300x slower poly-stricteq 69.9953+-0.1640 69.2156+-2.7591 might be 1.0113x faster polymorphic-put-by-id 79.9990+-0.2003 ^ 51.1808+-3.2141 ^ definitely 1.5631x faster try-catch-get-by-val-cloned-arguments 19.1109+-0.6936 ^ 12.4948+-0.0460 ^ definitely 1.5295x faster custom-setter-getter-as-put-get-by-id 0.6630+-0.0329 ? 0.6670+-0.0228 ? polymorphic-array-call 1.4429+-0.0659 ! 1.9129+-0.2230 ! definitely 1.3257x slower fold-multi-put-by-offset-to-poly-put-by-offset 8.9759+-0.0739 ? 9.5292+-1.0311 ? might be 1.0616x slower in-two-cases 11.2234+-0.1955 ! 15.8213+-3.1839 ! definitely 1.4097x slower array-access-polymorphic-structure 8.7495+-0.2567 ? 8.8377+-0.1312 ? might be 1.0101x slower varargs-call 17.2928+-0.5840 16.5765+-0.6616 might be 1.0432x faster poly-chain-access 3.0945+-0.0285 ? 3.4667+-0.8650 ? might be 1.1203x slower get_callee_polymorphic 4.0986+-0.0259 ? 4.1210+-0.0183 ? cmpeq-obj-to-obj-other 12.4483+-0.6709 ? 12.8854+-1.7214 ? might be 1.0351x slower arrowfunction-call 14.6559+-0.0473 ^ 13.5565+-0.8295 ^ definitely 1.0811x faster cast-int-to-double 5.8456+-0.1253 ? 6.2162+-0.2836 ? might be 1.0634x slower polyvariant-monomorphic-get-by-id 9.4138+-0.0479 ! 10.3359+-0.2516 ! definitely 1.0980x slower global-var-const-infer-fire-from-opt 0.9012+-0.0458 ? 1.0164+-0.2553 ? might be 1.1277x slower array-prototype-some 93.9464+-6.2426 ? 101.1664+-20.9607 ? might be 1.0769x slower inlined-put-by-val-with-symbol-transition 73.8535+-13.3798 ^ 55.5883+-4.1080 ^ definitely 1.3286x faster logical-not-weird-types 3.5731+-0.0208 ! 3.8951+-0.0879 ! definitely 1.0901x slower basic-set 8.7731+-0.5291 ? 9.4421+-1.3019 ? might be 1.0762x slower is-function-fold 3.4786+-0.0231 ? 3.8862+-0.3887 ? might be 1.1172x slower switch-string-basic-var 18.3503+-0.4480 ? 18.5076+-0.7720 ? assign-custom-setter-polymorphic 3.3788+-0.0670 3.3539+-0.0408 put-by-val-direct 0.4256+-0.0260 ? 0.4285+-0.0185 ? ArrayBuffer-Int8Array-alloc-large-long-lived 35.9009+-0.5786 ? 36.2803+-0.7242 ? might be 1.0106x slower abc-skippy-loop 58.7056+-0.2175 ^ 35.0159+-1.2423 ^ definitely 1.6765x faster simple-activation-demo 28.3408+-1.2963 ? 29.6160+-0.4205 ? might be 1.0450x slower string-concat-pair-simple 12.2679+-0.1187 ? 12.4800+-0.2968 ? might be 1.0173x slower get-by-val-out-of-bounds 5.7010+-1.5606 5.3125+-0.1256 might be 1.0731x faster destructuring-parameters-overridden-by-function 0.5833+-0.0385 ? 0.5844+-0.0275 ? prototype-access-with-mutating-prototype 6.7167+-0.0725 ? 7.1268+-1.5193 ? might be 1.0611x slower switch-string-length-tower-var 18.1631+-0.6233 ? 18.2670+-1.6607 ? captured-assignments 0.5443+-0.0174 ? 0.5513+-0.0126 ? might be 1.0129x slower JSONP-negative-0 0.3005+-0.0112 ? 0.3198+-0.0176 ? might be 1.0642x slower string-var-equality 41.3701+-0.0761 41.2098+-0.4893 int-or-other-mod-then-get-by-val 4.2367+-0.0381 ! 4.5900+-0.2610 ! definitely 1.0834x slower put-by-val-with-symbol-replace-and-transition 14.4775+-0.3219 ! 15.2324+-0.2168 ! definitely 1.0521x slower put-by-val-with-symbol 13.8167+-0.4499 ? 14.5800+-0.7900 ? might be 1.0552x slower Int32Array-alloc-large 25.1632+-0.3942 25.1091+-0.5327 sin-boolean 21.4800+-0.7855 ^ 14.7610+-1.4462 ^ definitely 1.4552x faster string-concat-simple 13.1550+-0.1308 ? 13.2583+-0.1930 ? getter-no-activation 5.5590+-0.1287 ? 5.9790+-0.7153 ? might be 1.0755x slower try-catch-get-by-val-direct-arguments 2.7095+-0.1225 2.7090+-0.3800 infer-constant-property 3.0411+-0.2281 ? 3.3724+-0.4640 ? might be 1.1089x slower div-boolean 8.1184+-0.0179 ! 8.5206+-0.0492 ! definitely 1.0495x slower large-int 19.5272+-0.1958 ^ 15.5234+-0.2170 ^ definitely 1.2579x faster external-arguments-putbyval 2.8700+-0.0211 ? 3.0460+-0.2601 ? might be 1.0613x slower max-boolean 2.8497+-0.1156 ! 3.3422+-0.0951 ! definitely 1.1728x slower get-by-id-proto-or-self 19.6556+-0.1148 ^ 17.4230+-1.6601 ^ definitely 1.1281x faster get-by-id-bimorphic-check-structure-elimination 5.3260+-0.0337 ! 6.8212+-1.2047 ! definitely 1.2807x slower get-by-val-with-symbol-proto-or-self 19.7358+-0.4432 18.7139+-1.5902 might be 1.0546x faster string-equality 23.4778+-0.2409 23.4141+-0.7514 getter 5.2850+-0.0939 ? 6.6855+-2.0419 ? might be 1.2650x slower Int32Array-Int8Array-view-alloc 7.6896+-0.3901 ? 7.7499+-0.4586 ? substring-concat 58.3458+-0.6530 ? 58.4691+-0.2550 ? is-boolean-fold-tricky 3.9456+-0.2226 ? 5.7930+-2.0286 ? might be 1.4682x slower integer-divide 13.3607+-0.3843 ? 13.9982+-0.9620 ? might be 1.0477x slower cse-new-array 2.8134+-0.1901 ? 2.8962+-0.0236 ? might be 1.0294x slower is-string-fold 3.4775+-0.1211 ? 3.8306+-0.5588 ? might be 1.1015x slower object-closure-call 6.7424+-0.0549 ? 6.8902+-0.9515 ? might be 1.0219x slower sinkable-new-object-dag 289.9733+-5.5523 ^ 64.9756+-2.3596 ^ definitely 4.4628x faster string-char-code-at 18.0813+-0.3232 ? 18.3694+-0.7281 ? might be 1.0159x slower double-to-uint32-typed-array-no-inline 2.5646+-0.0780 ! 3.0407+-0.3095 ! definitely 1.1857x slower Int16Array-bubble-sort 25.3566+-0.8943 ! 29.7587+-2.0796 ! definitely 1.1736x slower switch-char 6.4022+-0.2039 ! 8.3433+-1.4796 ! definitely 1.3032x slower switch-char-constant 3.1697+-0.0639 ? 3.5245+-0.5135 ? might be 1.1119x slower infer-one-time-closure-two-vars 23.6450+-1.0931 ^ 9.6426+-0.0455 ^ definitely 2.4521x faster object-test 3.2466+-0.1183 ? 3.8132+-0.6573 ? might be 1.1745x slower external-arguments-getbyval 1.4206+-0.0495 ! 1.8110+-0.1671 ! definitely 1.2748x slower plus-boolean 2.7690+-0.0812 ! 3.5812+-0.6528 ! definitely 1.2933x slower Int16Array-alloc-long-lived 52.9647+-1.1617 ? 53.7213+-0.7280 ? might be 1.0143x slower fold-get-by-id-to-multi-get-by-offset 8.5941+-0.0689 ? 9.2654+-0.6759 ? might be 1.0781x slower infer-one-time-deep-closure 45.2012+-2.9428 ^ 16.4357+-0.9169 ^ definitely 2.7502x faster new-array-buffer-push 6.9199+-0.0875 ? 7.1538+-0.4835 ? might be 1.0338x slower aliased-arguments-getbyval 1.3669+-0.0543 ? 1.5131+-0.1060 ? might be 1.1069x slower by-val-generic 2.8350+-0.0217 ? 3.6452+-0.9411 ? might be 1.2858x slower get-by-val-with-string-chain-from-try-block 3.0896+-0.1333 3.0576+-0.0476 might be 1.0105x faster ArrayBuffer-Int8Array-alloc-long-lived 15.8231+-1.1741 ? 15.8570+-0.2280 ? exit-length-on-plain-object 18.5483+-1.0611 17.8870+-0.5707 might be 1.0370x faster Int32Array-alloc 3.7540+-0.0329 ? 3.7673+-0.0187 ? weird-inlining-const-prop 2.4759+-0.0206 ! 3.3680+-0.6774 ! definitely 1.3603x slower DataView-custom-properties 46.1414+-0.7009 44.8441+-1.1243 might be 1.0289x faster HashMap-string-put-get-iterate 28.3382+-1.8440 ? 32.1696+-3.8409 ? might be 1.1352x slower get-by-id-bimorphic-check-structure-elimination-simple 2.7838+-0.0394 ! 3.7436+-0.6603 ! definitely 1.3448x slower temporal-structure 14.9177+-0.0384 ! 15.3156+-0.3351 ! definitely 1.0267x slower for-of-iterate-array-values 4.3520+-0.2200 ? 4.7446+-0.6516 ? might be 1.0902x slower varargs-construct 26.4003+-0.9502 24.7656+-1.3160 might be 1.0660x faster get-by-val-with-string-quadmorphic-check-structure-elimination-simple 3.2728+-0.0289 ? 5.5972+-2.5921 ? might be 1.7102x slower abc-simple-forward-loop 111.2878+-7.1319 ^ 50.3485+-1.1032 ^ definitely 2.2103x faster double-to-uint32-typed-array 2.3746+-0.0492 ? 3.1480+-1.0520 ? might be 1.3257x slower int-or-other-mul-then-get-by-val 4.2385+-0.0478 ? 4.9221+-1.3474 ? might be 1.1613x slower put-by-val-machine-int 3.0732+-0.0486 ? 3.5190+-0.9860 ? might be 1.1451x slower get-by-val-with-string-bimorphic-check-structure-elimination-simple 3.0059+-0.1440 ? 3.8461+-1.4638 ? might be 1.2795x slower lots-of-fields 11.6937+-0.0496 ! 11.9425+-0.0417 ! definitely 1.0213x slower infer-closure-const-then-mov-no-inline 3.9034+-0.1383 ? 4.1177+-0.0792 ? might be 1.0549x slower arguments 31.0430+-0.6386 ^ 9.4599+-0.6021 ^ definitely 3.2815x faster negative-zero-divide 0.4261+-0.0144 ? 0.4280+-0.0131 ? big-int-mul 4.1722+-0.0901 ? 5.1115+-1.3432 ? might be 1.2251x slower is-object-or-null-tricky-function 3.9465+-0.0282 ! 5.0596+-0.4505 ! definitely 1.2820x slower try-catch-get-by-val-scoped-arguments 5.9901+-0.1027 ? 5.9915+-0.0333 ? is-undefined-fold-tricky 3.5276+-0.1003 ? 4.2086+-0.7621 ? might be 1.1930x slower setter 5.7682+-0.1016 ? 6.8131+-1.3774 ? might be 1.1811x slower neg-boolean 3.3338+-0.0229 ? 3.7850+-0.6130 ? might be 1.1353x slower poly-chain-access-simpler 2.9557+-0.0455 ? 3.8280+-1.3684 ? might be 1.2951x slower slow-ternaries 42.1741+-0.2744 ^ 28.7265+-0.7518 ^ definitely 1.4681x faster put-by-id-slightly-polymorphic 3.2094+-0.0261 ? 3.5184+-0.5898 ? might be 1.0963x slower arguments-out-of-bounds 24.1373+-0.8040 ^ 13.2431+-1.1761 ^ definitely 1.8226x faster sink-function 19.1873+-0.3560 ^ 9.8521+-0.1094 ^ definitely 1.9475x faster marsaglia-larger-ints 90.2585+-0.1241 ^ 47.8788+-2.6324 ^ definitely 1.8851x faster undefined-test 3.5214+-0.0212 ! 4.0762+-0.3633 ! definitely 1.1575x slower imul-mixed 12.7208+-0.6635 ^ 7.4192+-1.1760 ^ definitely 1.7146x faster global-var-const-infer 0.8193+-0.0826 ? 0.8370+-0.0172 ? might be 1.0215x slower abc-simple-backward-loop 119.5490+-4.8134 ^ 50.2454+-1.0734 ^ definitely 2.3793x faster asmjs_bool_bug 9.1121+-0.0531 ? 9.8143+-1.4998 ? might be 1.0771x slower double-pollution-putbyoffset 5.2958+-0.0391 ? 5.3387+-0.1271 ? is-object-or-null-fold 3.4839+-0.0135 ? 4.0001+-0.6530 ? might be 1.1481x slower fold-put-by-val-with-symbol-to-multi-put-by-offset 10.0031+-0.0756 ! 11.2491+-0.8936 ! definitely 1.1246x slower cell-argument 12.4632+-0.4134 ^ 6.8090+-0.6528 ^ definitely 1.8304x faster int-or-other-add 5.6505+-0.0464 ! 6.1195+-0.4057 ! definitely 1.0830x slower put-by-val-with-string 13.6443+-0.2048 ? 14.2668+-0.5743 ? might be 1.0456x slower plus-boolean-arith 2.8640+-0.1664 ! 3.1418+-0.1018 ! definitely 1.0970x slower ArrayBuffer-Int32Array-byteOffset 4.7238+-0.0911 4.6349+-0.0430 might be 1.0192x faster mod-boolean 8.2263+-0.0284 ! 8.6599+-0.3807 ! definitely 1.0527x slower infer-closure-const-then-mov 22.0172+-0.7808 ^ 16.9840+-1.5923 ^ definitely 1.2963x faster large-int-neg 21.0789+-0.0429 ^ 17.6800+-1.8976 ^ definitely 1.1922x faster fround 29.9113+-0.0430 ^ 17.5023+-0.5705 ^ definitely 1.7090x faster elidable-new-object-dag 279.5915+-4.1982 ^ 44.6257+-0.2958 ^ definitely 6.2653x faster make-indexed-storage 3.6017+-0.1225 3.4348+-0.4825 might be 1.0486x faster int-or-other-add-then-get-by-val 5.3765+-0.0846 ? 6.0399+-1.2466 ? might be 1.1234x slower string-cons-repeat 8.4344+-0.3118 ? 8.5355+-0.2114 ? might be 1.0120x slower logical-not 5.0028+-0.1036 ? 5.0247+-0.1448 ? poly-chain-access-different-prototypes-simple 2.9552+-0.0277 ? 3.8501+-1.2924 ? might be 1.3028x slower fixed-typed-array-storage-var-index 1.4318+-0.0826 ? 1.5193+-0.1442 ? might be 1.0611x slower function-test 3.2056+-0.1080 ? 3.6876+-0.4686 ? might be 1.1504x slower string-cons-tower 8.5580+-0.2258 8.2426+-0.1146 might be 1.0383x faster destructuring-swap 5.3834+-0.0797 ? 5.8253+-0.7851 ? might be 1.0821x slower is-function-fold-tricky 3.9351+-0.0263 ! 5.2598+-0.9156 ! definitely 1.3367x slower array-prototype-reduceRight 94.5892+-11.0148 89.7671+-5.6436 might be 1.0537x faster int-or-other-max-then-get-by-val 4.6478+-0.0500 ? 5.2686+-1.0990 ? might be 1.1336x slower fold-multi-get-by-offset-to-get-by-offset 7.1613+-0.0529 6.9626+-0.1864 might be 1.0285x faster method-on-number 20.7433+-0.1607 ? 21.5430+-0.6721 ? might be 1.0386x slower put-by-id-replace-and-transition 8.7050+-0.2580 ! 9.7940+-0.1959 ! definitely 1.1251x slower int-or-other-neg-zero-then-get-by-val 25.5925+-0.9182 ? 27.0650+-2.7762 ? might be 1.0575x slower get-by-val-with-symbol-self-or-proto 20.3127+-0.1354 ? 22.2968+-6.9156 ? might be 1.0977x slower varargs-strict-mode 12.0976+-0.0500 ! 14.2051+-1.5431 ! definitely 1.1742x slower string-get-by-val-out-of-bounds-insane 4.0048+-0.0829 ? 4.1106+-0.2513 ? might be 1.0264x slower imul-double-only 10.7089+-0.0192 ^ 6.9798+-0.1823 ^ definitely 1.5343x faster polymorphic-put-by-val-with-symbol 80.5499+-9.2189 ^ 51.2168+-1.4945 ^ definitely 1.5727x faster for-of-iterate-array-keys 4.4060+-0.2731 ? 5.1633+-0.6297 ? might be 1.1719x slower string-get-by-val 3.1003+-0.0200 ! 4.8377+-1.5434 ! definitely 1.5604x slower nested-function-parsing 48.7020+-0.3358 ? 52.4249+-8.9069 ? might be 1.0764x slower inlined-put-by-val-with-string-transition 71.3392+-2.5821 ^ 54.6213+-0.7515 ^ definitely 1.3061x faster string-repeat-arith 36.5135+-0.4196 ! 40.5518+-0.2738 ! definitely 1.1106x slower fold-put-by-val-with-string-to-multi-put-by-offset 10.3184+-0.5027 ? 12.5891+-2.6232 ? might be 1.2201x slower inline-arguments-aliased-access 4.6809+-0.0638 ? 5.1559+-0.9455 ? might be 1.1015x slower allocate-big-object 2.7122+-0.0336 ? 3.0897+-0.3914 ? might be 1.1392x slower is-object-or-null-fold-less-tricky 3.9767+-0.2038 ? 5.0715+-1.0032 ? might be 1.2753x slower elidable-new-object-tree 285.3134+-10.3802 ^ 47.6078+-1.3902 ^ definitely 5.9930x faster ArrayBuffer-Int8Array-alloc 13.0708+-0.1405 ? 13.4281+-0.7858 ? might be 1.0273x slower repeat-multi-get-by-offset 36.2632+-1.5125 ^ 26.2115+-2.1116 ^ definitely 1.3835x faster int52-spill 7.4507+-0.4889 7.2200+-0.4573 might be 1.0319x faster no-inline-constructor 118.8953+-1.4945 ^ 42.0670+-0.6821 ^ definitely 2.8263x faster hoist-make-rope 54.2411+-0.4383 ^ 8.4819+-0.1065 ^ definitely 6.3949x faster arguments-strict-mode 191.3527+-23.7812 ^ 10.2546+-0.0176 ^ definitely 18.6602x faster function-with-eval 108.8823+-4.8496 108.0505+-1.6381 ArrayBuffer-DataView-alloc-long-lived 18.3102+-1.3732 ? 18.8069+-1.3045 ? might be 1.0271x slower simple-poly-call-nested 8.0485+-0.1817 ! 9.6196+-1.1981 ! definitely 1.1952x slower switch-string-big-length-tower-var 22.8771+-0.2934 ? 23.1442+-2.0376 ? might be 1.0117x slower getter-prototype 22.7758+-0.1853 ^ 10.0335+-0.4076 ^ definitely 2.2700x faster number-test 3.5318+-0.0606 ! 3.9247+-0.2714 ! definitely 1.1113x slower Int16Array-load-int-mul 1.7813+-0.0362 ! 1.9814+-0.0217 ! definitely 1.1124x slower put-by-id 13.4205+-0.2821 ? 13.7910+-0.4359 ? might be 1.0276x slower imul-int-only 11.9165+-0.1706 ^ 9.7191+-0.1021 ^ definitely 1.2261x faster gcse 4.1748+-0.0471 ? 5.4501+-1.2435 ? might be 1.3055x slower create-lots-of-functions 12.0698+-0.8546 ? 12.4170+-0.8240 ? might be 1.0288x slower in-four-cases 19.7836+-0.2195 ! 24.0595+-2.7616 ! definitely 1.2161x slower function-call 14.9920+-0.1940 ^ 13.3870+-0.1672 ^ definitely 1.1199x faster elidable-new-object-then-call 146.9852+-1.6712 ^ 36.1570+-0.6377 ^ definitely 4.0652x faster int-or-other-sub-then-get-by-val 5.5786+-0.1136 ? 6.2263+-1.2915 ? might be 1.1161x slower mul-boolean-double 3.9709+-0.0758 ? 4.1727+-0.1621 ? might be 1.0508x slower mod-boolean-double 7.2473+-0.0413 ! 8.6052+-0.8354 ! definitely 1.1874x slower inline-arguments-access 4.6270+-0.0418 ? 4.8613+-0.2833 ? might be 1.0506x slower substring-concat-weird 51.8423+-1.0684 51.6823+-1.3839 varargs-construct-inline 67.4532+-0.9767 ^ 26.7151+-0.3995 ^ definitely 2.5249x faster HashMap-put-get-iterate 28.7404+-3.4264 ! 38.3832+-1.8176 ! definitely 1.3355x slower string-long-ident-equality 18.7655+-0.6547 ? 19.4649+-1.7519 ? might be 1.0373x slower mul-boolean 3.0164+-0.0199 ! 3.2469+-0.0270 ! definitely 1.0764x slower get-by-id-check-structure-elimination 4.4843+-0.3224 ! 5.1877+-0.1593 ! definitely 1.1569x slower marsaglia-osr-entry 39.0438+-0.0375 ^ 24.5261+-0.7259 ^ definitely 1.5919x faster double-real-use 43.9907+-1.8629 ^ 31.5926+-1.5916 ^ definitely 1.3924x faster Float64Array-alloc-long-lived 76.3998+-1.2093 ? 76.5687+-1.1632 ? misc-strict-eq 51.9265+-1.0945 ^ 35.6979+-2.2381 ^ definitely 1.4546x faster raytrace-with-empty-try-catch 8.0946+-0.1096 ? 8.1592+-0.3629 ? make-rope-cse 4.4749+-0.1094 ? 4.5277+-0.1249 ? might be 1.0118x slower array-with-double-sum 3.5099+-0.0150 ! 3.6700+-0.0563 ! definitely 1.0456x slower substring 68.3262+-0.9611 ? 69.3586+-1.7972 ? might be 1.0151x slower array-with-double-increment 3.8042+-0.0313 ? 4.5106+-1.0360 ? might be 1.1857x slower is-object-or-null-trickier-function 4.0521+-0.1213 ! 5.0208+-0.5532 ! definitely 1.2391x slower hard-overflow-check 120.4727+-7.4838 ^ 40.3348+-1.5570 ^ definitely 2.9868x faster for-of-iterate-array-entries 14.5544+-1.1267 ? 15.5571+-3.3539 ? might be 1.0689x slower array-nonarray-polymorhpic-access 35.8502+-1.7448 33.7783+-1.7208 might be 1.0613x faster varargs 12.2153+-0.4963 ? 12.6841+-1.9431 ? might be 1.0384x slower getter-richards-try-catch 1660.8530+-61.2685 ^ 1466.9562+-58.6432 ^ definitely 1.1322x faster string-out-of-bounds 23.6370+-0.7223 ^ 13.8415+-1.3201 ^ definitely 1.7077x faster abc-forward-loop-equal 129.2076+-3.3087 ^ 50.8071+-1.1125 ^ definitely 2.5431x faster inlined-put-by-id-transition 10.6431+-0.2454 ? 11.2136+-0.6219 ? might be 1.0536x slower minus-boolean-double 3.3433+-0.0348 ? 3.6895+-0.5020 ? might be 1.1035x slower is-object-or-null-tricky-internal-function 8.5009+-0.1582 ! 9.7007+-0.0303 ! definitely 1.1411x slower delay-tear-off-arguments-strictmode 22.6231+-1.0949 ^ 15.3263+-0.2974 ^ definitely 1.4761x faster array-prototype-every 99.0335+-5.6731 94.9998+-3.0034 might be 1.0425x faster chain-getter-access 14.4065+-0.3681 ^ 9.1865+-0.2082 ^ definitely 1.5682x faster int-or-other-min-then-get-by-val 4.6286+-0.0531 ? 5.0355+-0.3764 ? might be 1.0879x slower HashMap-put-get-iterate-keys 28.3032+-0.7919 ! 34.9284+-4.4328 ! definitely 1.2341x slower double-pollution-getbyval 9.1422+-0.1223 ? 9.4540+-0.2444 ? might be 1.0341x slower structure-hoist-over-transitions 2.9680+-0.0299 ? 3.3383+-0.4731 ? might be 1.1248x slower polymorphic-structure 15.2248+-0.4957 ? 15.5936+-0.5133 ? might be 1.0242x slower sorting-benchmark 21.1093+-0.3525 ? 23.3660+-3.1702 ? might be 1.1069x slower fixed-typed-array-storage 1.0285+-0.0515 ! 1.2695+-0.1337 ! definitely 1.2343x slower load-varargs-elimination 60.3274+-0.6656 ^ 25.9871+-0.7879 ^ definitely 2.3214x faster raytrace-with-try-catch 12.9223+-0.1565 ? 15.3657+-4.7743 ? might be 1.1891x slower switch-string-length-tower 15.9096+-0.5246 ^ 15.1467+-0.1765 ^ definitely 1.0504x faster fold-multi-get-by-offset-to-poly-get-by-offset 7.8463+-0.0457 7.7003+-0.9568 might be 1.0190x faster Int8Array-load-with-byteLength 4.0532+-0.0217 ! 4.1588+-0.0174 ! definitely 1.0260x slower put-by-val-with-string-slightly-polymorphic 3.2864+-0.0813 ! 4.2201+-0.0687 ! definitely 1.2841x slower Float64Array-to-Int16Array-set 81.4868+-2.9809 ? 83.5517+-5.1952 ? might be 1.0253x slower infer-constant-global-property 7.1948+-0.1797 ? 7.5440+-0.5363 ? might be 1.0485x slower int-overflow-local 5.1300+-0.0719 ? 5.8468+-1.2989 ? might be 1.1397x slower min-boolean 2.8971+-0.2087 ? 3.4810+-0.8845 ? might be 1.2015x slower simple-getter-access 22.1263+-0.0243 ^ 12.7398+-0.3920 ^ definitely 1.7368x faster string-hash 2.4135+-0.2768 ? 2.4847+-0.0063 ? might be 1.0295x slower richards-empty-try-catch 93.8581+-0.7394 93.6034+-1.4092 arity-mismatch-inlining 1.0055+-0.0188 ? 1.2826+-0.2617 ? might be 1.2756x slower obviously-elidable-new-object 143.9283+-1.7075 ^ 32.6684+-1.0903 ^ definitely 4.4057x faster deltablue-varargs 242.3076+-2.6028 236.6606+-22.5169 might be 1.0239x faster gcse-poly-get 30.5043+-1.0418 ^ 24.7817+-1.4182 ^ definitely 1.2309x faster object-get-own-property-symbols-on-large-array 1.8766+-0.0167 1.8746+-0.0172 hoist-poly-check-structure-effectful-loop 4.4153+-0.0396 ! 6.1181+-1.5513 ! definitely 1.3856x slower minus-boolean 2.7552+-0.0907 ? 3.2397+-0.6484 ? might be 1.1758x slower gcse-poly-get-less-obvious 31.0952+-0.0572 ^ 23.3472+-1.3112 ^ definitely 1.3319x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 12.2644+-1.5148 ? 12.9441+-0.7859 ? might be 1.0554x slower branch-fold 4.2296+-0.2645 ? 4.6057+-0.4375 ? might be 1.0889x slower double-to-int32-typed-array 2.3863+-0.0271 ! 2.5633+-0.0638 ! definitely 1.0742x slower plus-boolean-double 3.3588+-0.0328 ? 3.7271+-0.4964 ? might be 1.1097x slower hoist-poly-check-structure 3.4344+-0.0787 ! 3.7622+-0.0558 ! definitely 1.0955x slower infer-one-time-closure-ten-vars 24.5740+-0.6767 ^ 10.0900+-0.0381 ^ definitely 2.4355x faster get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 3.3190+-0.0310 ! 4.0804+-0.0253 ! definitely 1.2294x slower get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 4.1390+-0.0981 ! 4.7871+-0.0447 ! definitely 1.1566x slower is-function-fold-tricky-internal-function 11.0883+-0.0341 ! 12.2023+-0.3159 ! definitely 1.1005x slower array-with-double-mul-add 5.2574+-0.0617 ? 6.5280+-2.2030 ? might be 1.2417x slower array-prototype-map 108.2628+-2.1056 103.8231+-6.3347 might be 1.0428x faster varargs-inline 13.0585+-0.0777 ^ 10.6839+-0.0345 ^ definitely 1.2223x faster sink-huge-activation 54.0956+-0.5480 ^ 16.5635+-2.2668 ^ definitely 3.2659x faster undefined-property-access 681.9703+-31.8667 ^ 373.3286+-9.7194 ^ definitely 1.8267x faster array-with-int32-add-sub 7.3907+-0.3494 ! 8.2432+-0.0528 ! definitely 1.1153x slower v8-raytrace-with-try-catch 82.5601+-2.4536 ? 83.4528+-3.2215 ? might be 1.0108x slower get-by-val-with-symbol-chain-from-try-block 3.1230+-0.1112 3.0590+-0.0457 might be 1.0210x faster function-dot-apply 2.4475+-0.0892 ? 3.0312+-0.7211 ? might be 1.2385x slower richards-try-catch 367.9762+-10.6270 ^ 303.4581+-4.9509 ^ definitely 1.2126x faster string-sub 47.6243+-2.7722 ? 47.6743+-2.9316 ? boolean-test 3.6196+-0.0485 ? 3.8912+-0.2525 ? might be 1.0750x slower emscripten-cube2hash 37.4694+-0.1242 ? 45.6163+-10.1910 ? might be 1.2174x slower Int32Array-alloc-long-lived 61.3869+-1.7107 60.7700+-1.3098 might be 1.0102x faster get-by-id-self-or-proto 20.2512+-0.1026 18.4865+-3.3665 might be 1.0955x faster cse-new-array-buffer 2.6937+-0.0169 ? 2.9470+-0.2538 ? might be 1.0940x slower get-by-val-with-string-self-or-proto 20.2811+-0.0714 19.6463+-3.6527 might be 1.0323x faster sinkable-new-object 147.3574+-0.7908 ^ 37.9512+-0.6235 ^ definitely 3.8828x faster put-by-val-large-index-blank-indexing-type 8.7107+-0.4712 ^ 6.9465+-0.1519 ^ definitely 1.2540x faster Int8Array-load 4.0434+-0.0508 ! 4.2582+-0.1603 ! definitely 1.0531x slower int-or-other-abs-then-get-by-val 5.3297+-0.1241 ? 5.6600+-0.3603 ? might be 1.0620x slower abs-boolean 2.8765+-0.0744 ? 3.7597+-1.0509 ? might be 1.3071x slower call-spread-call 35.9855+-0.4666 ^ 28.1262+-5.5528 ^ definitely 1.2794x faster unprofiled-licm 25.0434+-0.5978 ^ 13.1142+-0.2349 ^ definitely 1.9096x faster constant-test 5.5013+-0.0409 ? 5.9000+-0.5183 ? might be 1.0725x slower cfg-simplify 3.2528+-0.0073 ! 3.7600+-0.3474 ! definitely 1.1559x slower get-by-id-quadmorphic-check-structure-elimination-simple 3.1011+-0.0196 ? 3.7275+-1.1843 ? might be 1.2020x slower fold-put-structure 6.1555+-0.0829 ! 8.8040+-1.1878 ! definitely 1.4303x slower get-by-id-chain-from-try-block 3.0038+-0.0071 ? 3.0367+-0.1047 ? might be 1.0110x slower poly-chain-access-different-prototypes 3.1957+-0.0368 ? 3.7245+-0.8956 ? might be 1.1655x slower is-number-fold-tricky 3.8045+-0.0483 ! 5.0715+-1.0370 ! definitely 1.3330x slower get_callee_monomorphic 2.8164+-0.0141 ! 3.3842+-0.5307 ! definitely 1.2016x slower empty-string-plus-int 6.1417+-0.1575 ? 6.5657+-0.8874 ? might be 1.0690x slower Float32Array-to-Float64Array-set 71.5372+-2.4000 ? 73.4636+-0.0340 ? might be 1.0269x slower switch-string-short 16.0023+-0.1514 ^ 15.0644+-0.5658 ^ definitely 1.0623x faster switch-string-basic-big 17.4162+-0.0661 ! 21.6041+-0.1106 ! definitely 1.2405x slower get-by-val-with-string-bimorphic-check-structure-elimination 7.3303+-0.0462 ? 10.4140+-4.1936 ? might be 1.4207x slower double-get-by-val-out-of-bounds 6.8491+-1.3988 5.8732+-1.3033 might be 1.1662x faster large-int-captured 5.0432+-0.1002 ? 5.4730+-0.4882 ? might be 1.0852x slower elidable-new-object-roflcopter 129.5013+-1.5275 ^ 41.9938+-0.4463 ^ definitely 3.0838x faster string-get-by-val-out-of-bounds 4.8237+-0.0384 ? 6.9265+-2.3442 ? might be 1.4359x slower array-with-double-add 4.5355+-0.0454 ! 4.9616+-0.1788 ! definitely 1.0940x slower math-with-out-of-bounds-array-values 46.7276+-8.3773 43.4080+-6.5516 might be 1.0765x faster string-test 3.4795+-0.0098 ? 3.7310+-0.3701 ? might be 1.0723x slower is-undefined-fold 3.4432+-0.0495 ? 3.9227+-0.4848 ? might be 1.1393x slower switch 11.4039+-0.1880 ! 13.6285+-1.2977 ! definitely 1.1951x slower get-by-val-with-string-proto-or-self 19.5636+-0.3021 ? 19.5771+-3.1296 ? inline-get-scoped-var 5.1848+-0.3612 ? 5.8010+-0.4234 ? might be 1.1188x slower v8-raytrace-with-empty-try-catch 40.2857+-0.6616 39.8312+-1.5939 might be 1.0114x faster abc-postfix-backward-loop 121.4096+-0.4551 ^ 50.5142+-1.2367 ^ definitely 2.4035x faster tear-off-arguments-simple 3.5998+-0.0381 ? 4.0432+-0.4421 ? might be 1.1232x slower negative-zero-modulo 0.4373+-0.0236 0.4240+-0.0296 might be 1.0314x faster infer-closure-const-then-reenter 26.0088+-0.2819 ? 26.1910+-0.5336 ? array-prototype-forEach 93.5983+-7.3253 ? 98.1876+-16.7322 ? might be 1.0490x slower switch-constant 8.1714+-0.2837 ? 9.2730+-1.2033 ? might be 1.1348x slower negative-zero-negate 0.4161+-0.0247 0.4106+-0.0134 might be 1.0132x faster fold-get-by-id-to-multi-get-by-offset-rare-int 9.9167+-0.0400 ! 10.6697+-0.2405 ! definitely 1.0759x slower in-one-case-false 11.1960+-0.2205 ! 12.9901+-0.3651 ! definitely 1.1602x slower int-or-other-div-then-get-by-val 4.5335+-0.0550 ? 4.8741+-0.5516 ? might be 1.0751x slower typed-array-get-set-by-val-profiling 54.8230+-3.0342 ^ 31.1624+-1.2875 ^ definitely 1.7593x faster Int8Array-alloc-long-lived 48.2638+-0.8158 ? 48.7107+-1.7355 ? simple-poly-call 1.3978+-0.0494 ! 1.6505+-0.1817 ! definitely 1.1808x slower fold-multi-put-by-offset-to-put-by-offset 7.6177+-0.4850 ! 10.2785+-2.0320 ! definitely 1.3493x slower switch-string-basic-big-var 18.6783+-0.1675 ! 24.6080+-1.4743 ! definitely 1.3175x slower get-by-val-with-symbol-check-structure-elimination 13.1270+-0.1290 ? 19.1835+-7.2694 ? might be 1.4614x slower Int16Array-to-Int32Array-set 66.8518+-3.9525 ? 70.9005+-3.0064 ? might be 1.0606x slower sinkable-new-object-taken 159.2889+-2.3370 ^ 53.7167+-2.3388 ^ definitely 2.9653x faster string-concat-pair-object 2.5759+-0.0708 2.5672+-0.0372 branch-on-string-as-boolean 39.2623+-2.3715 ^ 19.3448+-1.4935 ^ definitely 2.0296x faster is-number-fold 3.4458+-0.0144 ? 3.8563+-0.5634 ? might be 1.1191x slower obvious-sink-pathology-taken 158.8640+-1.9904 ^ 131.7332+-2.4621 ^ definitely 1.2060x faster get-by-val-with-string-check-structure-elimination 6.4875+-0.1042 ? 9.1695+-3.3643 ? might be 1.4134x slower ftl-library-inlining 80.4724+-11.6642 78.0033+-10.9751 might be 1.0317x faster array-with-int32-or-double-sum 3.6702+-0.0857 ? 4.7503+-1.5072 ? might be 1.2943x slower Int16Array-bubble-sort-with-byteLength 25.5723+-0.2723 ! 28.4231+-0.7767 ! definitely 1.1115x slower <geometric> 11.2093+-0.0182 ^ 10.4307+-0.0616 ^ definitely 1.0746x faster NonFTL FTL Geomean of preferred means: <scaled-result> 37.0595+-0.1371 ^ 33.1371+-0.2222 ^ definitely 1.1184x faster
Yusuke Suzuki
Comment 7
2015-10-17 22:46:01 PDT
Now, I've installed libjemalloc in Ubuntu, set this to LD_PRELOAD to use jemalloc in LLVM's system allocator. I think the result seems significantly improved. So I guess the reason why FTL is slow in Linux is that LLVM uses system allocator. The result is the following. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on gpgpu. VMs tested: "NonFTL" at /home/yusuke/dev/WebKit/WebKitBuild/non-ftl/Release/bin/jsc "FTL" at /home/yusuke/dev/WebKit/WebKitBuild/llvm37/Release/bin/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. NonFTL FTL SunSpider: 3d-cube 7.0524+-2.6941 6.3386+-0.0731 might be 1.1126x faster 3d-morph 12.7888+-0.6201 ? 13.3835+-0.5311 ? might be 1.0465x slower 3d-raytrace 8.0074+-0.2345 ? 8.8989+-2.1024 ? might be 1.1113x slower access-binary-trees 2.6839+-0.0204 ? 2.7778+-0.0965 ? might be 1.0350x slower access-fannkuch 6.9145+-0.1362 ? 7.5927+-0.8489 ? might be 1.0981x slower access-nbody 3.5477+-0.0393 ! 3.6294+-0.0211 ! definitely 1.0230x slower access-nsieve 3.5820+-0.0494 ! 3.7101+-0.0170 ! definitely 1.0358x slower bitops-3bit-bits-in-byte 1.5892+-0.0457 ? 1.6793+-0.0541 ? might be 1.0566x slower bitops-bits-in-byte 2.9317+-0.0513 ! 4.6410+-0.6375 ! definitely 1.5830x slower bitops-bitwise-and 2.7906+-0.0432 ? 2.8005+-0.0102 ? bitops-nsieve-bits 3.8301+-0.0153 ? 4.5641+-1.0581 ? might be 1.1917x slower controlflow-recursive 3.1942+-0.8274 ? 3.9537+-0.7796 ? might be 1.2378x slower crypto-aes 5.5008+-0.0472 ? 5.5886+-0.0527 ? might be 1.0160x slower crypto-md5 3.4260+-0.0512 ? 4.4979+-1.1538 ? might be 1.3129x slower crypto-sha1 3.0262+-0.0314 ? 3.4012+-0.7512 ? might be 1.1239x slower date-format-tofte 10.7875+-0.4528 ? 12.3550+-2.6425 ? might be 1.1453x slower date-format-xparb 7.3867+-0.7164 6.8420+-0.2571 might be 1.0796x faster math-cordic 3.7005+-0.0499 ? 4.0825+-0.8286 ? might be 1.1032x slower math-partial-sums 8.8740+-0.1694 ? 8.9879+-0.0205 ? might be 1.0128x slower math-spectral-norm 2.6980+-0.0157 ? 3.0197+-0.7829 ? might be 1.1192x slower regexp-dna 7.8993+-0.0187 7.8566+-0.1484 string-base64 4.9214+-0.1204 ? 4.9763+-0.0771 ? might be 1.0112x slower string-fasta 7.6849+-0.1530 ? 8.3105+-0.9312 ? might be 1.0814x slower string-tagcloud 10.5847+-0.2908 10.5552+-0.0590 string-unpack-code 24.1332+-0.8036 ? 25.4195+-0.9518 ? might be 1.0533x slower string-validate-input 5.0150+-0.0261 ! 5.5007+-0.2956 ! definitely 1.0969x slower <arithmetic> 6.3289+-0.0922 ! 6.7447+-0.1837 ! definitely 1.0657x slower NonFTL FTL LongSpider: 3d-cube 1387.5114+-13.3301 ^ 914.7476+-27.9571 ^ definitely 1.5168x faster 3d-morph 2535.7257+-44.2009 2465.8999+-30.7478 might be 1.0283x faster 3d-raytrace 915.4013+-11.6122 ^ 875.1725+-25.3045 ^ definitely 1.0460x faster access-binary-trees 1156.4896+-14.4819 ^ 1056.5853+-12.5312 ^ definitely 1.0946x faster access-fannkuch 481.8972+-44.2863 ^ 369.8143+-19.7913 ^ definitely 1.3031x faster access-nbody 869.8559+-35.9841 ^ 665.6246+-33.6427 ^ definitely 1.3068x faster access-nsieve 616.0023+-11.0362 ^ 434.1047+-3.1067 ^ definitely 1.4190x faster bitops-3bit-bits-in-byte 56.7310+-3.0596 ^ 45.3621+-3.7818 ^ definitely 1.2506x faster bitops-bits-in-byte 162.5385+-10.0213 ^ 101.0483+-6.5902 ^ definitely 1.6085x faster bitops-nsieve-bits 706.9960+-38.8841 ^ 448.3860+-19.6212 ^ definitely 1.5768x faster controlflow-recursive 631.4822+-22.0958 ^ 546.2783+-29.8404 ^ definitely 1.1560x faster crypto-aes 1167.9417+-7.5944 ^ 702.9986+-17.3322 ^ definitely 1.6614x faster crypto-md5 845.9948+-91.6080 760.0557+-178.7554 might be 1.1131x faster crypto-sha1 1239.7120+-107.2425 ^ 930.8085+-115.3220 ^ definitely 1.3319x faster date-format-tofte 932.8746+-30.4738 930.4459+-50.3838 date-format-xparb 994.0773+-42.4641 989.6810+-37.1110 hash-map 213.2173+-53.8158 203.4932+-16.8819 might be 1.0478x faster math-cordic 1096.0920+-5.4380 ^ 599.1970+-12.1969 ^ definitely 1.8293x faster math-partial-sums 964.8618+-56.4468 924.6985+-55.1435 might be 1.0434x faster math-spectral-norm 1361.6097+-60.2471 ^ 910.7105+-13.9885 ^ definitely 1.4951x faster string-base64 413.0436+-4.5631 410.5074+-10.2382 string-fasta 572.7180+-5.3593 ^ 513.4163+-15.5648 ^ definitely 1.1155x faster string-tagcloud 235.1322+-10.7020 230.9803+-3.6118 might be 1.0180x faster <geometric> 661.9206+-7.5903 ^ 534.9466+-11.4981 ^ definitely 1.2374x faster NonFTL FTL V8Spider: crypto 61.0082+-1.3079 ? 62.8973+-1.2924 ? might be 1.0310x slower deltablue 75.9303+-4.6509 ? 81.8624+-4.1616 ? might be 1.0781x slower earley-boyer 52.7525+-0.1942 ? 54.5363+-3.6253 ? might be 1.0338x slower raytrace 34.7275+-1.7457 ! 44.6025+-7.8898 ! definitely 1.2844x slower regexp 83.1592+-1.7670 ? 83.6691+-1.0425 ? richards 72.3243+-3.0315 67.4078+-10.7245 might be 1.0729x faster splay 37.4365+-0.5734 ! 43.2390+-2.5956 ! definitely 1.1550x slower <geometric> 56.8048+-0.7192 ! 60.6816+-2.7316 ! definitely 1.0682x slower NonFTL FTL Octane: encrypt 0.31508+-0.00025 ^ 0.23621+-0.00131 ^ definitely 1.3339x faster decrypt 5.73922+-0.03317 ^ 4.05599+-0.13596 ^ definitely 1.4150x faster deltablue x2 0.40003+-0.00659 ^ 0.18305+-0.00339 ^ definitely 2.1853x faster earley 0.60158+-0.00258 ^ 0.38523+-0.00207 ^ definitely 1.5616x faster boyer 8.10023+-0.06854 ^ 6.03855+-0.04359 ^ definitely 1.3414x faster navier-stokes x2 7.02110+-0.06783 ^ 5.26998+-0.00739 ^ definitely 1.3323x faster raytrace x2 3.00433+-0.02379 ^ 1.16905+-0.00715 ^ definitely 2.5699x faster richards x2 0.17456+-0.00121 ^ 0.11203+-0.00234 ^ definitely 1.5581x faster splay x2 0.48663+-0.00428 ^ 0.42882+-0.00140 ^ definitely 1.1348x faster regexp x2 29.91012+-0.18866 29.91002+-0.25214 pdfjs x2 47.99273+-0.94666 47.40744+-2.07853 might be 1.0123x faster mandreel x2 102.13683+-6.81919 ^ 56.03108+-2.54898 ^ definitely 1.8229x faster gbemu x2 49.41184+-1.11619 42.57532+-8.53758 might be 1.1606x faster closure 0.75047+-0.01380 0.74682+-0.01589 jquery 9.70394+-0.24312 9.68995+-0.23014 box2d x2 14.35457+-0.13953 ^ 13.79179+-0.38706 ^ definitely 1.0408x faster zlib x2 569.08685+-8.24707 ^ 426.65710+-34.38642 ^ definitely 1.3338x faster typescript x2 890.21143+-18.17892 ? 1007.53668+-136.60667 ? might be 1.1318x slower <geometric> 9.23321+-0.04314 ^ 6.95631+-0.12638 ^ definitely 1.3273x faster NonFTL FTL Kraken: ai-astar 195.822+-1.175 ^ 156.442+-16.945 ^ definitely 1.2517x faster audio-beat-detection 82.226+-3.972 ^ 66.638+-0.508 ^ definitely 1.2339x faster audio-dft 111.592+-6.797 ^ 81.541+-0.864 ^ definitely 1.3685x faster audio-fft 67.706+-0.555 ^ 50.151+-0.397 ^ definitely 1.3500x faster audio-oscillator 89.990+-0.259 ^ 79.971+-2.848 ^ definitely 1.1253x faster imaging-darkroom 212.762+-0.155 ^ 110.970+-0.288 ^ definitely 1.9173x faster imaging-desaturate 112.560+-1.048 ^ 70.711+-2.760 ^ definitely 1.5918x faster imaging-gaussian-blur 219.492+-0.501 ^ 124.164+-6.875 ^ definitely 1.7678x faster json-parse-financial 59.443+-4.652 ? 62.065+-4.081 ? might be 1.0441x slower json-stringify-tinderbox 31.426+-0.113 ? 31.479+-0.409 ? stanford-crypto-aes 63.015+-2.687 ^ 53.158+-1.788 ^ definitely 1.1854x faster stanford-crypto-ccm 49.731+-3.135 ? 58.574+-22.015 ? might be 1.1778x slower stanford-crypto-pbkdf2 129.867+-8.112 116.190+-5.853 might be 1.1177x faster stanford-crypto-sha256-iterative 48.418+-0.355 ^ 44.526+-0.173 ^ definitely 1.0874x faster <arithmetic> 105.289+-0.505 ^ 79.041+-2.034 ^ definitely 1.3321x faster NonFTL FTL JSRegress: string-get-by-val-big-char 7.9072+-0.2146 ? 8.8956+-2.2367 ? might be 1.1250x slower slow-convergence 3.3200+-0.0290 ? 3.6857+-0.9180 ? might be 1.1102x slower int-or-other-abs-zero-then-get-by-val 25.6179+-1.5553 ? 26.2161+-0.5837 ? might be 1.0234x slower polymorphic-put-by-val-with-string 81.9053+-5.1484 ^ 49.9456+-3.2454 ^ definitely 1.6399x faster switch-string-basic 16.7660+-0.6856 ? 17.3696+-1.6074 ? might be 1.0360x slower integer-modulo 2.3578+-0.0242 ! 2.5977+-0.1807 ! definitely 1.1017x slower fold-double-to-int 19.7733+-0.9953 ^ 16.2890+-0.8404 ^ definitely 1.2139x faster is-object-or-null-trickier-internal-function 11.6551+-0.2834 ! 13.0608+-0.7944 ! definitely 1.1206x slower setter-prototype 22.1702+-1.2897 ^ 7.0910+-0.3641 ^ definitely 3.1265x faster adapt-to-double-divide 19.1995+-0.6483 ^ 16.8702+-0.5602 ^ definitely 1.1381x faster hard-overflow-check-equal 120.5748+-6.0977 ^ 39.9243+-1.5852 ^ definitely 3.0201x faster tear-off-arguments 4.9485+-0.0438 ? 5.9437+-1.0423 ? might be 1.2011x slower get-by-val-with-symbol-bimorphic-check-structure-elimination 13.8751+-0.6170 ? 20.6727+-9.7086 ? might be 1.4899x slower polymorphic-get-by-id 3.4686+-0.0307 ? 4.3572+-0.8651 ? might be 1.2562x slower is-object-or-null-fold-tricky 5.8133+-0.2585 ! 6.6428+-0.1270 ! definitely 1.1427x slower inline-arguments-local-escape 4.6661+-0.0824 ? 5.1209+-0.8170 ? might be 1.0975x slower int-or-other-sub 4.5521+-0.1333 ? 4.6080+-0.0805 ? might be 1.0123x slower new-array-dead 120.5289+-1.4344 ^ 16.9489+-1.0653 ^ definitely 7.1113x faster rare-osr-exit-on-local 14.6306+-0.7429 ! 15.8362+-0.3686 ! definitely 1.0824x slower obvious-sink-pathology 146.3658+-0.6783 ^ 34.8726+-4.0812 ^ definitely 4.1972x faster infer-one-time-closure 23.8615+-0.5872 ^ 9.6368+-0.7383 ^ definitely 2.4761x faster in-one-case-true 10.8542+-0.3847 ! 14.8499+-2.9527 ! definitely 1.3681x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 25.0853+-1.5681 ? 25.2650+-0.5313 ? infer-closure-const-then-reenter-no-inline 76.8195+-3.4166 ^ 59.7020+-3.1965 ^ definitely 1.2867x faster global-object-access-with-mutating-structure 6.9704+-0.0334 ? 6.9813+-0.9509 ? array-prototype-reduce 89.7750+-3.1562 ! 111.3208+-15.2891 ! definitely 1.2400x slower call-spread-apply 40.1644+-5.0216 37.6505+-4.4722 might be 1.0668x faster destructuring-arguments 235.8987+-27.9983 ? 253.1880+-39.5233 ? might be 1.0733x slower string-concat-object 2.6994+-0.0645 ? 2.7142+-0.0787 ? arguments-named-and-reflective 35.9856+-1.0446 ^ 11.4910+-0.3489 ^ definitely 3.1316x faster singleton-scope 85.3392+-4.9380 ^ 75.1448+-2.3565 ^ definitely 1.1357x faster sparse-conditional 1.6380+-0.0174 ? 1.7297+-0.1711 ? might be 1.0560x slower is-string-fold-tricky 4.0820+-0.0294 ! 4.9240+-0.4485 ! definitely 1.2063x slower splice-to-remove 18.4214+-0.5200 18.2098+-0.8765 might be 1.0116x faster assign-custom-setter 4.8539+-0.0589 ? 4.8801+-0.0830 ? slow-array-profile-convergence 3.7585+-0.3288 ? 3.8564+-0.7976 ? might be 1.0260x slower proto-getter-access 14.4077+-0.7429 ^ 9.7825+-0.6337 ^ definitely 1.4728x faster direct-arguments-getbyval 1.4206+-0.0272 ? 2.8110+-2.1743 ? might be 1.9787x slower fold-put-by-id-to-multi-put-by-offset 10.0289+-0.6182 ? 12.2235+-2.4478 ? might be 1.2188x slower to-int32-boolean 16.3435+-0.4902 15.9930+-0.5631 might be 1.0219x faster is-object-or-null-fold-functions 3.7634+-0.0381 ? 3.9550+-0.3716 ? might be 1.0509x slower Float32Array-matrix-mult 5.9782+-1.0331 5.6951+-0.1011 might be 1.0497x faster register-pressure-from-osr 21.6236+-1.2579 ? 24.2164+-3.3168 ? might be 1.1199x slower new-array-buffer-dead 116.7885+-0.4215 ^ 109.8243+-3.7744 ^ definitely 1.0634x faster infer-closure-const-then-put-to-scope-no-inline 16.3443+-0.2683 ^ 14.2467+-0.3931 ^ definitely 1.1472x faster ArrayBuffer-DataView-alloc-large-long-lived 37.9933+-0.8709 ? 38.3744+-0.4487 ? might be 1.0100x slower put-by-val-with-symbol-slightly-polymorphic 3.6263+-0.1144 ? 5.1026+-1.3975 ? might be 1.4071x slower double-to-int32-typed-array-no-inline 2.7228+-0.0412 ? 4.2307+-1.7678 ? might be 1.5538x slower put-by-val-with-string-replace-and-transition 13.1796+-0.2901 ! 14.6250+-1.1299 ! definitely 1.1097x slower getter-richards 98.7578+-6.0305 ! 122.3333+-2.4874 ! definitely 1.2387x slower new-array-push 4.4501+-0.1471 ? 4.8727+-0.6607 ? might be 1.0950x slower infer-closure-const-then-put-to-scope 25.1785+-1.2246 ? 25.6741+-0.9539 ? might be 1.0197x slower array-splice-contiguous 49.7453+-2.6352 49.5142+-3.5551 ftl-library-inlining-dataview 75.8328+-1.1406 ? 76.1927+-3.5307 ? indexed-properties-in-objects 3.4070+-0.2344 ? 3.7018+-0.7484 ? might be 1.0865x slower div-boolean-double 5.6614+-0.0845 ? 5.8316+-0.1254 ? might be 1.0301x slower is-boolean-fold 3.6749+-0.0126 ? 4.0226+-0.5517 ? might be 1.0946x slower int-or-other-neg-then-get-by-val 5.0325+-0.0167 ? 5.1602+-0.2379 ? might be 1.0254x slower poly-stricteq 66.6585+-4.0028 ? 67.9410+-4.3076 ? might be 1.0192x slower polymorphic-put-by-id 77.7662+-4.3841 ^ 48.6328+-3.1315 ^ definitely 1.5990x faster try-catch-get-by-val-cloned-arguments 19.0333+-0.8558 ^ 12.4322+-0.3588 ^ definitely 1.5310x faster custom-setter-getter-as-put-get-by-id 0.7882+-0.0223 0.7836+-0.0174 polymorphic-array-call 1.6200+-0.0286 ? 1.6555+-0.0257 ? might be 1.0219x slower fold-multi-put-by-offset-to-poly-put-by-offset 8.4352+-0.2423 ! 9.7422+-0.9947 ! definitely 1.1549x slower in-two-cases 11.1241+-0.3666 ! 13.5710+-0.3700 ! definitely 1.2200x slower array-access-polymorphic-structure 8.7220+-0.1922 8.7048+-0.3017 varargs-call 17.1853+-0.6196 16.2307+-0.4234 might be 1.0588x faster poly-chain-access 3.2568+-0.2346 ? 3.2646+-0.0601 ? get_callee_polymorphic 4.1091+-0.0207 ? 4.1490+-0.0493 ? cmpeq-obj-to-obj-other 12.2134+-1.0625 ? 12.8953+-1.6500 ? might be 1.0558x slower arrowfunction-call 14.8067+-0.5009 ^ 13.1607+-0.3037 ^ definitely 1.1251x faster cast-int-to-double 6.1027+-0.0150 ? 6.5176+-1.0091 ? might be 1.0680x slower polyvariant-monomorphic-get-by-id 9.4636+-0.2865 ? 9.7250+-0.0744 ? might be 1.0276x slower global-var-const-infer-fire-from-opt 1.0914+-0.0352 ? 1.6052+-1.6078 ? might be 1.4708x slower array-prototype-some 92.6352+-5.1199 91.0099+-1.9926 might be 1.0179x faster inlined-put-by-val-with-symbol-transition 72.9044+-5.2291 ^ 55.4588+-3.6838 ^ definitely 1.3146x faster logical-not-weird-types 3.7452+-0.0518 ? 4.5455+-1.1447 ? might be 1.2137x slower basic-set 8.6926+-0.2564 ! 9.0819+-0.0582 ! definitely 1.0448x slower is-function-fold 3.7295+-0.0652 ? 3.7687+-0.0236 ? might be 1.0105x slower switch-string-basic-var 18.3847+-0.6462 18.3156+-0.5011 assign-custom-setter-polymorphic 3.5208+-0.0078 3.4958+-0.0350 put-by-val-direct 0.5814+-0.0141 ? 0.5820+-0.0101 ? ArrayBuffer-Int8Array-alloc-large-long-lived 36.3408+-0.5218 ? 36.5289+-2.1414 ? abc-skippy-loop 56.7914+-3.2308 ^ 34.0815+-2.2893 ^ definitely 1.6663x faster simple-activation-demo 27.8688+-0.8926 ? 28.7615+-1.1019 ? might be 1.0320x slower string-concat-pair-simple 12.3123+-0.3145 ? 12.5488+-0.1945 ? might be 1.0192x slower get-by-val-out-of-bounds 6.6492+-1.6634 5.5787+-0.5742 might be 1.1919x faster destructuring-parameters-overridden-by-function 0.7380+-0.0107 0.7373+-0.0179 prototype-access-with-mutating-prototype 6.7010+-0.3640 ? 7.1796+-1.1793 ? might be 1.0714x slower switch-string-length-tower-var 17.9117+-0.7433 ? 18.2157+-1.6050 ? might be 1.0170x slower captured-assignments 0.7240+-0.0151 ? 0.7406+-0.0171 ? might be 1.0229x slower JSONP-negative-0 0.4305+-0.0190 ? 0.4418+-0.0132 ? might be 1.0262x slower string-var-equality 40.6328+-2.2004 40.5591+-1.9415 int-or-other-mod-then-get-by-val 4.4503+-0.0147 ? 4.8754+-1.2024 ? might be 1.0955x slower put-by-val-with-symbol-replace-and-transition 14.4341+-0.2060 ? 15.6154+-1.0040 ? might be 1.0818x slower put-by-val-with-symbol 13.9730+-0.3874 ? 14.2450+-0.5714 ? might be 1.0195x slower Int32Array-alloc-large 24.8322+-0.0707 ? 24.9339+-0.2685 ? sin-boolean 20.9587+-0.1581 ^ 13.7692+-0.5967 ^ definitely 1.5221x faster string-concat-simple 13.0773+-0.3538 ? 13.3105+-0.2449 ? might be 1.0178x slower getter-no-activation 5.7933+-0.0810 ! 6.2139+-0.2954 ! definitely 1.0726x slower try-catch-get-by-val-direct-arguments 2.6755+-0.1508 2.6405+-0.1098 might be 1.0133x faster infer-constant-property 3.3820+-0.0771 ^ 3.2558+-0.0283 ^ definitely 1.0388x faster div-boolean 8.3546+-0.0763 ? 8.6183+-0.2462 ? might be 1.0316x slower large-int 19.3674+-0.7733 ^ 15.2490+-0.5742 ^ definitely 1.2701x faster external-arguments-putbyval 3.0153+-0.2779 2.9699+-0.0282 might be 1.0153x faster max-boolean 3.1046+-0.0933 ? 3.5968+-0.6595 ? might be 1.1585x slower get-by-id-proto-or-self 19.4852+-0.8649 16.7718+-2.0165 might be 1.1618x faster get-by-id-bimorphic-check-structure-elimination 5.5732+-0.0037 ! 7.6403+-1.4848 ! definitely 1.3709x slower get-by-val-with-symbol-proto-or-self 19.3051+-1.1580 ? 19.5792+-2.5455 ? might be 1.0142x slower string-equality 23.4940+-0.9941 23.0502+-1.2240 might be 1.0193x faster getter 5.4614+-0.0268 ! 6.0767+-0.1822 ! definitely 1.1127x slower Int32Array-Int8Array-view-alloc 7.6878+-0.2741 7.5983+-0.1161 might be 1.0118x faster substring-concat 57.9803+-1.4836 ? 58.5788+-0.2797 ? might be 1.0103x slower is-boolean-fold-tricky 4.0497+-0.0053 ? 5.2196+-1.5779 ? might be 1.2889x slower integer-divide 13.1715+-0.4644 ? 14.0203+-0.6326 ? might be 1.0644x slower cse-new-array 2.7862+-0.0248 ! 2.9492+-0.1190 ! definitely 1.0585x slower is-string-fold 3.6943+-0.0117 ? 3.7433+-0.0716 ? might be 1.0133x slower object-closure-call 6.7587+-0.5559 ? 6.9147+-0.7595 ? might be 1.0231x slower sinkable-new-object-dag 293.5046+-1.6903 ^ 63.8447+-1.1909 ^ definitely 4.5972x faster string-char-code-at 18.0278+-1.0455 ? 18.2718+-0.7880 ? might be 1.0135x slower double-to-uint32-typed-array-no-inline 2.8220+-0.0332 ! 3.6546+-0.1026 ! definitely 1.2950x slower Int16Array-bubble-sort 25.8096+-2.6175 25.1643+-2.4915 might be 1.0256x faster switch-char 6.4985+-0.0970 ? 7.2897+-1.2489 ? might be 1.1218x slower switch-char-constant 3.4235+-0.0911 ? 3.7347+-0.4749 ? might be 1.0909x slower infer-one-time-closure-two-vars 23.7090+-0.6046 ^ 9.3776+-0.2117 ^ definitely 2.5283x faster object-test 3.4170+-0.0289 ? 3.8362+-0.6670 ? might be 1.1227x slower external-arguments-getbyval 1.4896+-0.0275 ! 3.3329+-0.3709 ! definitely 2.2375x slower plus-boolean 2.9583+-0.0137 ! 3.5665+-0.4440 ! definitely 1.2056x slower Int16Array-alloc-long-lived 53.6694+-0.4797 ? 53.7773+-0.5614 ? fold-get-by-id-to-multi-get-by-offset 8.6553+-0.2738 ! 10.2044+-0.1658 ! definitely 1.1790x slower infer-one-time-deep-closure 45.0729+-1.9807 ^ 15.9156+-0.6612 ^ definitely 2.8320x faster new-array-buffer-push 6.9123+-0.0496 ? 6.9598+-0.0330 ? aliased-arguments-getbyval 1.4443+-0.0315 ? 3.0056+-1.6266 ? might be 2.0811x slower by-val-generic 2.9092+-0.0391 ? 3.3773+-0.8284 ? might be 1.1609x slower get-by-val-with-string-chain-from-try-block 3.2953+-0.0508 3.2886+-0.0287 ArrayBuffer-Int8Array-alloc-long-lived 16.0220+-0.6474 15.4815+-0.7214 might be 1.0349x faster exit-length-on-plain-object 20.4372+-4.4927 18.2133+-0.4816 might be 1.1221x faster Int32Array-alloc 3.7964+-0.0401 ? 3.8005+-0.0222 ? weird-inlining-const-prop 2.5745+-0.0431 ! 3.4995+-0.8553 ! definitely 1.3593x slower DataView-custom-properties 46.9354+-1.1168 45.9189+-0.5124 might be 1.0221x faster HashMap-string-put-get-iterate 27.8495+-1.4856 ? 31.9622+-2.9834 ? might be 1.1477x slower get-by-id-bimorphic-check-structure-elimination-simple 2.9907+-0.0229 ! 3.1724+-0.0116 ! definitely 1.0608x slower temporal-structure 15.1407+-0.0214 ! 16.9080+-0.6290 ! definitely 1.1167x slower for-of-iterate-array-values 4.3481+-0.1214 4.3447+-0.0733 varargs-construct 25.9533+-1.2827 24.1375+-1.1037 might be 1.0752x faster get-by-val-with-string-quadmorphic-check-structure-elimination-simple 3.5181+-0.0288 ? 4.9987+-2.3640 ? might be 1.4209x slower abc-simple-forward-loop 113.8921+-9.3642 ^ 47.0512+-0.9468 ^ definitely 2.4206x faster double-to-uint32-typed-array 2.6403+-0.0118 ! 2.6801+-0.0151 ! definitely 1.0151x slower int-or-other-mul-then-get-by-val 4.4455+-0.0608 ? 5.1855+-0.8335 ? might be 1.1665x slower put-by-val-machine-int 3.1404+-0.0417 ! 3.2991+-0.0871 ! definitely 1.0505x slower get-by-val-with-string-bimorphic-check-structure-elimination-simple 3.1743+-0.0564 ? 3.7532+-0.9290 ? might be 1.1824x slower lots-of-fields 11.6622+-0.0923 ? 11.9182+-0.3428 ? might be 1.0219x slower infer-closure-const-then-mov-no-inline 4.0635+-0.0144 ? 4.7260+-0.6777 ? might be 1.1630x slower arguments 31.0851+-0.8023 ^ 9.1857+-0.3325 ^ definitely 3.3841x faster negative-zero-divide 0.5963+-0.0278 ? 0.6030+-0.0095 ? might be 1.0112x slower big-int-mul 4.4872+-0.2941 ? 5.4025+-1.7452 ? might be 1.2040x slower is-object-or-null-tricky-function 4.2150+-0.0226 ? 5.7435+-1.5685 ? might be 1.3626x slower try-catch-get-by-val-scoped-arguments 6.2047+-0.4236 5.9496+-0.1344 might be 1.0429x faster is-undefined-fold-tricky 3.7561+-0.0424 ? 4.4968+-1.4421 ? might be 1.1972x slower setter 5.9869+-0.0493 ? 6.7793+-1.3548 ? might be 1.1324x slower neg-boolean 3.5765+-0.0074 ? 3.8631+-0.6868 ? might be 1.0801x slower poly-chain-access-simpler 3.1838+-0.0229 ? 3.9902+-0.9156 ? might be 1.2533x slower slow-ternaries 41.0300+-2.4804 ^ 27.3257+-1.8770 ^ definitely 1.5015x faster put-by-id-slightly-polymorphic 3.4194+-0.0218 ? 3.4675+-0.1093 ? might be 1.0141x slower arguments-out-of-bounds 24.4578+-1.6788 ^ 12.7133+-0.5086 ^ definitely 1.9238x faster sink-function 18.9227+-0.4137 ^ 9.8712+-0.0362 ^ definitely 1.9170x faster marsaglia-larger-ints 87.9358+-4.5231 ^ 46.9623+-1.8620 ^ definitely 1.8725x faster undefined-test 3.7154+-0.0196 ? 4.2637+-0.5511 ? might be 1.1476x slower imul-mixed 12.4578+-0.4793 ^ 6.9345+-1.5302 ^ definitely 1.7965x faster global-var-const-infer 1.0099+-0.0292 ? 1.0240+-0.0142 ? might be 1.0139x slower abc-simple-backward-loop 116.7796+-8.4084 ^ 47.2610+-0.1622 ^ definitely 2.4709x faster asmjs_bool_bug 9.4119+-0.1181 ? 10.1245+-1.3167 ? might be 1.0757x slower double-pollution-putbyoffset 5.3373+-0.0398 ? 5.3629+-0.0654 ? is-object-or-null-fold 3.7206+-0.0175 ? 4.0449+-0.5132 ? might be 1.0872x slower fold-put-by-val-with-symbol-to-multi-put-by-offset 10.3491+-0.6241 ? 11.4197+-0.9424 ? might be 1.1035x slower cell-argument 12.4335+-0.3437 ^ 6.4105+-0.2219 ^ definitely 1.9396x faster int-or-other-add 5.9343+-0.0593 ? 6.0801+-0.1488 ? might be 1.0246x slower put-by-val-with-string 13.7567+-0.1481 ? 14.0125+-0.3056 ? might be 1.0186x slower plus-boolean-arith 3.0386+-0.1669 ? 3.5632+-0.7433 ? might be 1.1726x slower ArrayBuffer-Int32Array-byteOffset 4.8767+-0.0468 ? 4.8830+-0.1022 ? mod-boolean 8.3818+-0.1625 ? 8.6169+-0.2704 ? might be 1.0280x slower infer-closure-const-then-mov 22.0835+-1.1346 ^ 16.2788+-1.0477 ^ definitely 1.3566x faster large-int-neg 21.0408+-0.7342 ^ 17.3503+-1.8404 ^ definitely 1.2127x faster fround 29.4317+-1.3030 ^ 16.8084+-0.5209 ^ definitely 1.7510x faster elidable-new-object-dag 283.5838+-5.1411 ^ 44.9205+-1.3301 ^ definitely 6.3130x faster make-indexed-storage 3.7514+-0.4264 ? 3.9145+-0.5159 ? might be 1.0435x slower int-or-other-add-then-get-by-val 5.5818+-0.0873 ? 5.7469+-0.2720 ? might be 1.0296x slower string-cons-repeat 8.3720+-0.0607 ? 8.4960+-0.3505 ? might be 1.0148x slower logical-not 5.1408+-0.0080 ? 5.2990+-0.8190 ? might be 1.0308x slower poly-chain-access-different-prototypes-simple 3.1783+-0.0039 ? 3.8608+-1.2767 ? might be 1.2147x slower fixed-typed-array-storage-var-index 1.6157+-0.0237 ? 1.7111+-0.1920 ? might be 1.0590x slower function-test 3.3485+-0.0361 ? 3.7477+-0.5595 ? might be 1.1192x slower string-cons-tower 8.2407+-0.1400 ? 8.2780+-0.3140 ? destructuring-swap 5.6506+-0.0874 ? 5.7605+-0.3075 ? might be 1.0194x slower is-function-fold-tricky 4.1847+-0.0811 ! 5.0412+-0.5424 ! definitely 1.2047x slower array-prototype-reduceRight 91.3631+-3.3135 ? 95.7963+-9.5668 ? might be 1.0485x slower int-or-other-max-then-get-by-val 4.8115+-0.0804 ? 5.2532+-1.0831 ? might be 1.0918x slower fold-multi-get-by-offset-to-get-by-offset 6.4434+-0.1569 ? 7.7468+-2.1197 ? might be 1.2023x slower method-on-number 21.0338+-0.5489 ? 22.4348+-2.0436 ? might be 1.0666x slower put-by-id-replace-and-transition 8.7812+-0.3278 ! 9.8716+-0.1317 ! definitely 1.1242x slower int-or-other-neg-zero-then-get-by-val 25.4119+-1.8127 ? 25.9560+-1.1085 ? might be 1.0214x slower get-by-val-with-symbol-self-or-proto 20.2516+-0.7050 ^ 16.9863+-0.6219 ^ definitely 1.1922x faster varargs-strict-mode 12.2132+-0.4550 ? 12.8719+-1.6756 ? might be 1.0539x slower string-get-by-val-out-of-bounds-insane 4.2095+-0.0815 4.1922+-0.0686 imul-double-only 10.6014+-0.3353 ^ 6.7917+-0.1028 ^ definitely 1.5609x faster polymorphic-put-by-val-with-symbol 83.6144+-3.5581 ^ 49.2299+-2.7708 ^ definitely 1.6984x faster for-of-iterate-array-keys 4.4565+-0.0438 ? 5.0558+-0.8450 ? might be 1.1345x slower string-get-by-val 3.2762+-0.0402 ! 4.0988+-0.0641 ! definitely 1.2511x slower nested-function-parsing 48.6446+-0.1310 ! 49.9907+-0.1894 ! definitely 1.0277x slower inlined-put-by-val-with-string-transition 73.0518+-7.9781 ^ 55.0377+-1.2087 ^ definitely 1.3273x faster string-repeat-arith 35.2603+-0.8550 ! 39.3600+-1.8522 ! definitely 1.1163x slower fold-put-by-val-with-string-to-multi-put-by-offset 10.1570+-0.4361 ? 11.2501+-1.0794 ? might be 1.1076x slower inline-arguments-aliased-access 4.6913+-0.0436 ? 4.8490+-0.1934 ? might be 1.0336x slower allocate-big-object 2.7612+-0.0201 ? 3.0272+-0.3748 ? might be 1.0963x slower is-object-or-null-fold-less-tricky 4.1503+-0.0391 ! 5.3687+-0.9521 ! definitely 1.2936x slower elidable-new-object-tree 282.8172+-4.5926 ^ 48.5969+-1.2920 ^ definitely 5.8197x faster ArrayBuffer-Int8Array-alloc 12.6614+-0.7858 ? 13.1295+-0.1065 ? might be 1.0370x slower repeat-multi-get-by-offset 35.3613+-1.3447 ^ 25.8083+-1.4715 ^ definitely 1.3702x faster int52-spill 7.2577+-0.0799 7.1921+-0.3543 no-inline-constructor 118.8687+-0.4040 ^ 42.2557+-1.2675 ^ definitely 2.8131x faster hoist-make-rope 53.9557+-1.1725 ^ 8.1979+-1.1489 ^ definitely 6.5817x faster arguments-strict-mode 191.7001+-15.4669 ^ 10.0460+-0.0375 ^ definitely 19.0822x faster function-with-eval 106.6435+-2.1628 ? 109.1393+-3.7487 ? might be 1.0234x slower ArrayBuffer-DataView-alloc-long-lived 17.8605+-0.9920 ? 18.2021+-1.0602 ? might be 1.0191x slower simple-poly-call-nested 8.1699+-0.1785 ? 9.4517+-1.4477 ? might be 1.1569x slower switch-string-big-length-tower-var 24.7576+-9.1407 22.1013+-0.8389 might be 1.1202x faster getter-prototype 22.8353+-0.9106 ^ 9.8578+-0.3575 ^ definitely 2.3165x faster number-test 3.7563+-0.0258 ? 3.9451+-0.3587 ? might be 1.0503x slower Int16Array-load-int-mul 2.0286+-0.0161 ? 2.0657+-0.0486 ? might be 1.0183x slower put-by-id 13.6362+-0.1407 ? 13.9892+-0.4059 ? might be 1.0259x slower imul-int-only 12.0445+-0.2925 ^ 9.4220+-0.2772 ^ definitely 1.2783x faster gcse 4.4060+-0.0129 ? 5.4810+-1.2276 ? might be 1.2440x slower create-lots-of-functions 11.6929+-0.1349 ? 12.1195+-0.4619 ? might be 1.0365x slower in-four-cases 19.5029+-0.7977 ! 23.3777+-2.8806 ! definitely 1.1987x slower function-call 14.8235+-0.6137 ^ 13.3555+-0.6208 ^ definitely 1.1099x faster elidable-new-object-then-call 146.6854+-2.3604 ^ 36.1876+-0.6871 ^ definitely 4.0535x faster int-or-other-sub-then-get-by-val 5.7513+-0.0433 ? 6.1693+-0.9977 ? might be 1.0727x slower mul-boolean-double 4.1401+-0.0304 ! 4.2381+-0.0572 ! definitely 1.0237x slower mod-boolean-double 7.4017+-0.1606 ! 8.2032+-0.0195 ! definitely 1.1083x slower inline-arguments-access 4.6476+-0.0195 ! 4.7985+-0.0587 ! definitely 1.0325x slower substring-concat-weird 52.0349+-0.2877 51.3320+-0.6540 might be 1.0137x faster varargs-construct-inline 67.9503+-1.0918 ^ 26.7985+-2.1456 ^ definitely 2.5356x faster HashMap-put-get-iterate 27.3087+-1.0464 ! 35.7645+-3.8403 ! definitely 1.3096x slower string-long-ident-equality 18.6880+-0.8397 ? 18.9648+-0.7456 ? might be 1.0148x slower mul-boolean 3.2654+-0.0198 ? 3.6099+-0.7898 ? might be 1.1055x slower get-by-id-check-structure-elimination 4.7983+-0.3421 ? 5.4876+-0.8531 ? might be 1.1437x slower marsaglia-osr-entry 38.7648+-1.5912 ^ 24.3610+-1.7428 ^ definitely 1.5913x faster double-real-use 42.6147+-2.3909 ^ 31.3326+-1.5132 ^ definitely 1.3601x faster Float64Array-alloc-long-lived 77.0803+-0.4565 ? 77.6374+-1.0645 ? misc-strict-eq 51.6099+-2.8777 ^ 34.4631+-1.1943 ^ definitely 1.4975x faster raytrace-with-empty-try-catch 8.1388+-0.1705 8.0630+-0.0924 make-rope-cse 4.4767+-0.0901 ? 4.5472+-0.1013 ? might be 1.0158x slower array-with-double-sum 3.7678+-0.0169 ? 3.8019+-0.1319 ? substring 67.3983+-1.5996 ? 68.3753+-2.9332 ? might be 1.0145x slower array-with-double-increment 4.0875+-0.0329 ? 4.5035+-0.9224 ? might be 1.1018x slower is-object-or-null-trickier-function 4.2603+-0.0433 ? 6.0212+-1.8928 ? might be 1.4133x slower hard-overflow-check 118.2269+-4.7907 ^ 38.9319+-2.0148 ^ definitely 3.0368x faster for-of-iterate-array-entries 14.2731+-0.5852 ? 15.9123+-4.1222 ? might be 1.1148x slower array-nonarray-polymorhpic-access 36.2726+-2.3770 ^ 32.4353+-1.3647 ^ definitely 1.1183x faster varargs 12.4981+-0.2871 ? 13.0490+-1.5342 ? might be 1.0441x slower getter-richards-try-catch 1725.3296+-30.3436 ^ 1459.2888+-130.5426 ^ definitely 1.1823x faster string-out-of-bounds 23.5436+-0.9116 ^ 13.6539+-0.9879 ^ definitely 1.7243x faster abc-forward-loop-equal 133.4355+-9.2185 ^ 49.6725+-2.4915 ^ definitely 2.6863x faster inlined-put-by-id-transition 10.7962+-0.0826 ? 11.5837+-1.8368 ? might be 1.0729x slower minus-boolean-double 3.5560+-0.0382 ? 3.7803+-0.4630 ? might be 1.0631x slower is-object-or-null-tricky-internal-function 8.5972+-0.1514 ? 10.3696+-1.7054 ? might be 1.2062x slower delay-tear-off-arguments-strictmode 22.0130+-0.7578 ^ 15.4550+-0.3061 ^ definitely 1.4243x faster array-prototype-every 94.1058+-8.3399 91.8611+-4.3050 might be 1.0244x faster chain-getter-access 14.5913+-0.5361 ^ 9.1824+-0.5533 ^ definitely 1.5890x faster int-or-other-min-then-get-by-val 4.9386+-0.2563 ? 4.9570+-0.0871 ? HashMap-put-get-iterate-keys 29.0244+-4.8236 ! 38.3020+-1.6580 ! definitely 1.3196x slower double-pollution-getbyval 9.1630+-0.3105 ? 9.3203+-0.2343 ? might be 1.0172x slower structure-hoist-over-transitions 3.0532+-0.0819 ? 3.1647+-0.2929 ? might be 1.0365x slower polymorphic-structure 15.3062+-0.4966 ? 15.8015+-0.5783 ? might be 1.0324x slower sorting-benchmark 21.4241+-0.1439 ? 22.4351+-2.5471 ? might be 1.0472x slower fixed-typed-array-storage 1.2925+-0.0169 ? 1.3395+-0.0507 ? might be 1.0364x slower load-varargs-elimination 60.7234+-1.6632 ^ 26.4686+-1.0912 ^ definitely 2.2942x faster raytrace-with-try-catch 12.9490+-0.0248 ? 13.2463+-1.1637 ? might be 1.0230x slower switch-string-length-tower 16.0904+-0.5591 ^ 15.0429+-0.0216 ^ definitely 1.0696x faster fold-multi-get-by-offset-to-poly-get-by-offset 7.1907+-0.1508 ? 7.5662+-0.2394 ? might be 1.0522x slower Int8Array-load-with-byteLength 4.2437+-0.0195 ? 4.3227+-0.1329 ? might be 1.0186x slower put-by-val-with-string-slightly-polymorphic 3.4268+-0.1022 ! 4.6039+-1.0017 ! definitely 1.3435x slower Float64Array-to-Int16Array-set 80.4601+-3.8524 ? 81.1193+-3.6007 ? infer-constant-global-property 7.3777+-0.1216 7.3756+-0.1172 int-overflow-local 5.2909+-0.0500 ? 5.4771+-0.2309 ? might be 1.0352x slower min-boolean 3.1701+-0.1580 ? 3.2700+-0.0237 ? might be 1.0315x slower simple-getter-access 21.3184+-1.1235 ^ 12.5715+-1.0917 ^ definitely 1.6958x faster string-hash 2.4854+-0.0400 ! 2.5812+-0.0237 ! definitely 1.0386x slower richards-empty-try-catch 92.4245+-3.5537 ? 93.4360+-3.0940 ? might be 1.0109x slower arity-mismatch-inlining 1.2101+-0.0247 ? 1.2664+-0.0678 ? might be 1.0465x slower obviously-elidable-new-object 143.4730+-1.8552 ^ 32.3793+-0.2122 ^ definitely 4.4310x faster deltablue-varargs 246.2100+-7.6380 242.5396+-19.6662 might be 1.0151x faster gcse-poly-get 30.0609+-1.7755 ^ 24.3698+-1.7222 ^ definitely 1.2335x faster object-get-own-property-symbols-on-large-array 1.8842+-0.0435 ? 1.8932+-0.0237 ? hoist-poly-check-structure-effectful-loop 4.4866+-0.0901 ! 5.7695+-0.3741 ! definitely 1.2860x slower minus-boolean 2.9921+-0.1049 ? 3.2655+-0.4811 ? might be 1.0914x slower gcse-poly-get-less-obvious 30.7116+-1.6140 ^ 22.8569+-0.8560 ^ definitely 1.3436x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 11.2834+-0.1735 ! 13.5195+-2.0336 ! definitely 1.1982x slower branch-fold 4.3442+-0.0660 ? 4.9277+-0.5612 ? might be 1.1343x slower double-to-int32-typed-array 2.6075+-0.0043 ? 3.0070+-0.7151 ? might be 1.1532x slower plus-boolean-double 3.6044+-0.0387 ? 3.7210+-0.1742 ? might be 1.0324x slower hoist-poly-check-structure 3.5990+-0.0226 ? 4.0950+-0.9200 ? might be 1.1378x slower infer-one-time-closure-ten-vars 24.1420+-0.9371 ^ 10.1355+-0.1365 ^ definitely 2.3819x faster get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 3.5311+-0.0492 ? 4.6548+-1.7189 ? might be 1.3182x slower get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 4.4035+-0.1108 ? 5.6558+-2.5711 ? might be 1.2844x slower is-function-fold-tricky-internal-function 11.1548+-0.3076 ! 12.1813+-0.1130 ! definitely 1.0920x slower array-with-double-mul-add 5.5228+-0.1750 ? 7.5916+-3.1220 ? might be 1.3746x slower array-prototype-map 103.2870+-4.3543 101.2139+-7.6656 might be 1.0205x faster varargs-inline 13.1813+-0.3642 ^ 10.7460+-0.4953 ^ definitely 1.2266x faster sink-huge-activation 53.7635+-0.6447 ^ 15.6755+-0.5816 ^ definitely 3.4298x faster undefined-property-access 680.6348+-30.3387 ^ 368.5426+-4.5651 ^ definitely 1.8468x faster array-with-int32-add-sub 7.5950+-0.0954 ? 9.8358+-3.2005 ? might be 1.2950x slower v8-raytrace-with-try-catch 82.1516+-0.7951 ? 90.3392+-14.9655 ? might be 1.0997x slower get-by-val-with-symbol-chain-from-try-block 3.2800+-0.0216 ? 3.3102+-0.0249 ? function-dot-apply 2.7128+-0.0206 ? 2.8505+-0.3670 ? might be 1.0508x slower richards-try-catch 366.0545+-10.8145 ^ 300.0113+-7.6679 ^ definitely 1.2201x faster string-sub 48.0822+-2.0671 47.2764+-2.5736 might be 1.0170x faster boolean-test 3.7887+-0.0327 ? 4.1434+-0.3279 ? might be 1.0936x slower emscripten-cube2hash 37.5612+-0.2514 ? 40.7593+-10.5352 ? might be 1.0851x slower Int32Array-alloc-long-lived 61.5937+-0.3122 ? 61.7476+-1.2962 ? get-by-id-self-or-proto 20.2054+-0.6885 18.7450+-4.8825 might be 1.0779x faster cse-new-array-buffer 2.7374+-0.0232 ? 2.9424+-0.1970 ? might be 1.0749x slower get-by-val-with-string-self-or-proto 19.9844+-0.9882 ? 21.4657+-8.5245 ? might be 1.0741x slower sinkable-new-object 146.7340+-2.2804 ^ 34.5775+-4.2091 ^ definitely 4.2436x faster put-by-val-large-index-blank-indexing-type 8.4521+-0.3622 ^ 6.8856+-0.4375 ^ definitely 1.2275x faster Int8Array-load 4.2408+-0.0354 ? 4.3738+-0.1733 ? might be 1.0314x slower int-or-other-abs-then-get-by-val 5.5120+-0.0324 ? 5.6555+-0.2842 ? might be 1.0260x slower abs-boolean 3.1153+-0.0236 ? 3.8414+-0.8569 ? might be 1.2331x slower call-spread-call 35.0546+-3.0299 28.0239+-5.3761 might be 1.2509x faster unprofiled-licm 25.0110+-0.6746 ^ 13.1661+-0.4313 ^ definitely 1.8996x faster constant-test 5.7090+-0.0357 ? 5.8875+-0.2475 ? might be 1.0312x slower cfg-simplify 3.4827+-0.0360 ? 3.7197+-0.4018 ? might be 1.0680x slower get-by-id-quadmorphic-check-structure-elimination-simple 3.3690+-0.1683 ? 3.5632+-0.3504 ? might be 1.0577x slower fold-put-structure 6.4495+-0.3675 ! 8.1970+-1.3521 ! definitely 1.2710x slower get-by-id-chain-from-try-block 3.2465+-0.0925 3.2365+-0.0270 poly-chain-access-different-prototypes 3.4392+-0.0171 ? 3.7138+-0.7372 ? might be 1.0798x slower is-number-fold-tricky 4.0884+-0.0289 ! 4.7627+-0.1059 ! definitely 1.1649x slower get_callee_monomorphic 2.8679+-0.0414 ? 3.2045+-0.4856 ? might be 1.1174x slower empty-string-plus-int 6.0429+-0.1540 ! 6.2593+-0.0427 ! definitely 1.0358x slower Float32Array-to-Float64Array-set 68.1642+-2.2956 ? 72.1258+-4.3917 ? might be 1.0581x slower switch-string-short 16.2162+-0.0883 ^ 15.0198+-0.9911 ^ definitely 1.0797x faster switch-string-basic-big 17.6690+-0.2020 ! 21.2715+-0.2727 ! definitely 1.2039x slower get-by-val-with-string-bimorphic-check-structure-elimination 7.4634+-0.1742 ? 9.3707+-3.5730 ? might be 1.2556x slower double-get-by-val-out-of-bounds 6.6404+-2.3519 6.0086+-1.7802 might be 1.1052x faster large-int-captured 5.0598+-0.0668 ? 5.5430+-1.1128 ? might be 1.0955x slower elidable-new-object-roflcopter 129.5195+-0.5997 ^ 42.6716+-2.0551 ^ definitely 3.0353x faster string-get-by-val-out-of-bounds 5.0798+-0.0925 ! 5.8194+-0.1070 ! definitely 1.1456x slower array-with-double-add 4.7324+-0.0519 ? 6.1315+-1.9518 ? might be 1.2957x slower math-with-out-of-bounds-array-values 49.2297+-11.8158 42.2332+-11.9949 might be 1.1657x faster string-test 3.5850+-0.0331 ? 3.8470+-0.4040 ? might be 1.0731x slower is-undefined-fold 3.7029+-0.0567 ? 3.8820+-0.4851 ? might be 1.0484x slower switch 11.4010+-0.5026 ! 12.5807+-0.2866 ! definitely 1.1035x slower get-by-val-with-string-proto-or-self 19.9335+-0.7183 18.2625+-2.3856 might be 1.0915x faster inline-get-scoped-var 5.3463+-0.4131 ? 5.5712+-0.1102 ? might be 1.0421x slower v8-raytrace-with-empty-try-catch 39.8839+-1.2130 38.8493+-1.6724 might be 1.0266x faster abc-postfix-backward-loop 117.5613+-7.5196 ^ 48.4510+-3.0530 ^ definitely 2.4264x faster tear-off-arguments-simple 3.6680+-0.0417 ! 3.8817+-0.1431 ! definitely 1.0583x slower negative-zero-modulo 0.5790+-0.0207 ? 0.5865+-0.0081 ? might be 1.0129x slower infer-closure-const-then-reenter 25.7738+-1.4696 25.5565+-1.6704 array-prototype-forEach 92.1759+-4.0142 ? 93.4722+-10.7575 ? might be 1.0141x slower switch-constant 8.1942+-0.2836 ? 9.3406+-0.9365 ? might be 1.1399x slower negative-zero-negate 0.5693+-0.0177 ? 0.5753+-0.0110 ? might be 1.0105x slower fold-get-by-id-to-multi-get-by-offset-rare-int 9.9581+-0.2230 ? 11.1285+-1.1373 ? might be 1.1175x slower in-one-case-false 11.3463+-0.2844 ! 14.1113+-1.6614 ! definitely 1.2437x slower int-or-other-div-then-get-by-val 4.7654+-0.1031 ? 5.6160+-1.0800 ? might be 1.1785x slower typed-array-get-set-by-val-profiling 55.9189+-2.8909 ^ 31.1227+-0.4601 ^ definitely 1.7967x faster Int8Array-alloc-long-lived 48.4653+-0.8600 ? 48.9403+-0.4142 ? simple-poly-call 1.6200+-0.0329 ? 1.6685+-0.0309 ? might be 1.0300x slower fold-multi-put-by-offset-to-put-by-offset 7.5031+-0.0322 ! 9.6894+-1.1037 ! definitely 1.2914x slower switch-string-basic-big-var 18.7457+-0.7133 ! 25.0718+-3.4248 ! definitely 1.3375x slower get-by-val-with-symbol-check-structure-elimination 13.4056+-0.5910 ? 17.0460+-5.8852 ? might be 1.2716x slower Int16Array-to-Int32Array-set 66.9800+-4.3391 ? 68.3256+-0.3725 ? might be 1.0201x slower sinkable-new-object-taken 159.4445+-1.7759 ^ 53.2231+-1.7816 ^ definitely 2.9958x faster string-concat-pair-object 2.5905+-0.0409 ? 2.5929+-0.0652 ? branch-on-string-as-boolean 40.1921+-0.0313 ^ 17.8527+-0.7353 ^ definitely 2.2513x faster is-number-fold 3.6742+-0.0145 ? 3.7650+-0.0948 ? might be 1.0247x slower obvious-sink-pathology-taken 159.3830+-1.6641 ^ 131.8880+-2.5034 ^ definitely 1.2085x faster get-by-val-with-string-check-structure-elimination 6.6716+-0.0659 ? 8.4758+-3.0846 ? might be 1.2704x slower ftl-library-inlining 77.0017+-5.8045 74.1640+-2.8796 might be 1.0383x faster array-with-int32-or-double-sum 3.8898+-0.1526 ? 3.9038+-0.0434 ? Int16Array-bubble-sort-with-byteLength 25.8616+-0.8441 24.1148+-1.1421 might be 1.0724x faster <geometric> 11.4932+-0.0278 ^ 10.5317+-0.1028 ^ definitely 1.0913x faster NonFTL FTL Geomean of preferred means: <scaled-result> 37.2200+-0.0755 ^ 32.8961+-0.4671 ^ definitely 1.1314x faster
Michael Catanzaro
Comment 8
2015-10-25 15:48:17 PDT
(In reply to
comment #7
)
> Now, I've installed libjemalloc in Ubuntu, set this to LD_PRELOAD to use > jemalloc in LLVM's system allocator. > I think the result seems significantly improved. > So I guess the reason why FTL is slow in Linux is that LLVM uses system > allocator.
This indicates to me that we should keep FTL disabled indefinitely; do you agree?
Filip Pizlo
Comment 9
2015-10-25 18:17:22 PDT
(In reply to
comment #8
)
> (In reply to
comment #7
) > > Now, I've installed libjemalloc in Ubuntu, set this to LD_PRELOAD to use > > jemalloc in LLVM's system allocator. > > I think the result seems significantly improved. > > So I guess the reason why FTL is slow in Linux is that LLVM uses system > > allocator. > > This indicates to me that we should keep FTL disabled indefinitely; do you > agree?
Your performance numbers indicate that the FTL configuration gives a ~30% speed up on throughout benchmarks like Octane and Kraken and a 10% slow down on SunSpider. SunSpider is a deprecated benchmark, so it's not clear that we should care at all. But even if we did, the small slow down on SunSpider comes with a huge speed up on other, more modern, tests. This appears to be the case even when you use the system allocator. So, can you clarify why you think it's a good idea to keep the FTL disabled?
Filip Pizlo
Comment 10
2015-10-25 18:21:09 PDT
(In reply to
comment #3
)
> Created
attachment 250923
[details]
> X86_64 Linux performance results > > summary: > - 1.0920x slower - SunSpider > - 1.2151x faster - LongSpider > - 1.0805x slower - V8Spider > - 1.2307x faster - Octane > - 1.0174x faster - Kraken > - 1.0388x faster - JSRegress > > The progression is promising on LongSpider and Octane, but > the regression on SunSpider and V8Spider isn't so good.
It should be noted that V8Spider, JSReress, and LongSpider aren't official benchmarks. Results from these tests are definitely less significant than results from the other benchmarks. And SunSpider is deprecated. So the FTL produces a speed up on both real benchmark suites (Octane and Kraken). For the deprecated and unsupported tests, it looks like it slows down some while speeding up others. That seems like the FTL is a pure win on Linux.
Michael Catanzaro
Comment 11
2015-10-25 19:25:14 PDT
(In reply to
comment #9
)
> So, can you clarify why you think it's a good idea to keep the FTL disabled?
Simply because I read the words "FTL is slow in Linux." ;) No further objections from me.
Yusuke Suzuki
Comment 12
2015-10-26 00:39:56 PDT
(In reply to
comment #11
)
> (In reply to
comment #9
) > > So, can you clarify why you think it's a good idea to keep the FTL disabled? > > Simply because I read the words "FTL is slow in Linux." ;) No further > objections from me.
fpizlo@, thank you for your clarification about benchmarks! It seems that FTL improves real-world benchmarks significantly. So I think enabling FTL for x64 is reasonable choice. What do you think of, mcatanzaro@ and ossy@?
Michael Catanzaro
Comment 13
2015-10-26 07:54:31 PDT
"No further objections from me."
Csaba Osztrogonác
Comment 14
2015-10-27 10:15:37 PDT
Created
attachment 264134
[details]
Patch updated to ToT
Csaba Osztrogonác
Comment 15
2015-10-27 11:09:15 PDT
Created
attachment 264144
[details]
Patch Additionally run FTL tests by default
Csaba Osztrogonác
Comment 16
2015-10-27 11:38:41 PDT
(In reply to
comment #10
)
> It should be noted that V8Spider, JSReress, and LongSpider aren't official > benchmarks. Results from these tests are definitely less significant than > results from the other benchmarks. And SunSpider is deprecated.
> So the FTL produces a speed up on both real benchmark suites (Octane and > Kraken). For the deprecated and unsupported tests, it looks like it slows > down some while speeding up others. That seems like the FTL is a pure win on > Linux.
https://www.webkit.org/blog/3611/announcing-jetstream-1-1/
"JetStream includes many legacy benchmarks from older benchmark suites like SunSpider and V8. Most of those tests are still relevant, since they feature non-trivial workloads that are representative of what we think developers want to be able to do efficiently in JavaScript." But
http://trac.webkit.org/changeset/187526
and now you say that SunSpider is deprecated / no longer maintained. I'm confused a little bit ... so SunSpider is relevant or not? As far as I know it is still included in JetStream. I think it's obvious for the core JSC developers, but how others can notice what benchmarks are official/deprecated/significant/real ? Do we have a tool which can run all officially supported benchmarks with JSC command line binary out-of-the-box? I know Tools/Scripts/run-jsc-benchmarks, but it's not clear to me which version of which benchmark is officially supported.
Csaba Osztrogonác
Comment 17
2015-10-27 11:41:15 PDT
(In reply to
comment #12
)
> (In reply to
comment #11
) > > (In reply to
comment #9
) > > > So, can you clarify why you think it's a good idea to keep the FTL disabled? > > > > Simply because I read the words "FTL is slow in Linux." ;) No further > > objections from me. > > fpizlo@, thank you for your clarification about benchmarks! > > It seems that FTL improves real-world benchmarks significantly. > So I think enabling FTL for x64 is reasonable choice. > > What do you think of, mcatanzaro@ and ossy@?
I have no objection ... but it would be clarify which benchmarks should we take notice.
Filip Pizlo
Comment 18
2015-10-27 12:02:43 PDT
(In reply to
comment #16
)
> (In reply to
comment #10
) > > > It should be noted that V8Spider, JSReress, and LongSpider aren't official > > benchmarks. Results from these tests are definitely less significant than > > results from the other benchmarks. And SunSpider is deprecated. > > > So the FTL produces a speed up on both real benchmark suites (Octane and > > Kraken). For the deprecated and unsupported tests, it looks like it slows > > down some while speeding up others. That seems like the FTL is a pure win on > > Linux. > >
https://www.webkit.org/blog/3611/announcing-jetstream-1-1/
> "JetStream includes many legacy benchmarks from older benchmark suites like > SunSpider and V8. Most of those tests are still relevant, since they feature > non-trivial workloads that are representative of what we think developers > want to be able to do efficiently in JavaScript."
It includes benchmarks from SunSpider. It does not include all of SunSpider.
> > But
http://trac.webkit.org/changeset/187526
and now you > say that SunSpider is deprecated / no longer maintained. > > I'm confused a little bit ... so SunSpider is relevant or not? > As far as I know it is still included in JetStream.
I'm extremely confused about your confusion. It's really not that complicated.
> > I think it's obvious for the core JSC developers, but how others > can notice what benchmarks are official/deprecated/significant/real ?
Everyone is free to decide to care, or not care, about various benchmarks. However, if you decided to care about SunSpider, you'd be the member of a rapidly shrinking club.
> > Do we have a tool which can run all officially supported benchmarks > with JSC command line binary out-of-the-box?
Not really; I run JetStream in browser because that gives the most believable results. It's fine to use run-jsc-benchmarks and look at the geomean of SunSpider/Octane. That's a pretty good proxy for JetStream. Look, I know that statistics can be tricky, but in all of your performance reports you keep citing a <10% regression on SunSpider and a >30% progression on Octane and Kraken. So even if you want to care about SunSpider then unless you also decided not to care at all about Octane or Kraken then you must surely concede that the average of -10% and +30% is in positive territory. This is why we have opted to enable the FTL. Flip it around in your head: if you had FTL enabled and someone posted a patch to disable it, this patch would cause a 30% regression on Octane and Kraken. 30%!! That's huge! It would also cause less than 10% progression on SunSpider. But, any time I have seen someone land a patch that produces an X% progression in on benchmark A and a Y% regression on benchmark B, the patch will get rolled out if Y > X.
Csaba Osztrogonác
Comment 19
2015-10-28 03:01:29 PDT
Comment on
attachment 264144
[details]
Patch It's ready for review, but I would like to land manually once
bug150616
is fixed.
Csaba Osztrogonác
Comment 20
2015-11-02 08:36:42 PST
Created
attachment 264589
[details]
new X86_64 Linux performance results with LLVM 3.6
Csaba Osztrogonác
Comment 21
2015-11-02 08:37:05 PST
Created
attachment 264590
[details]
new X86_64 Linux performance results with LLVM 3.7
Csaba Osztrogonác
Comment 22
2015-11-02 08:39:42 PST
(In reply to
comment #20
)
> Created
attachment 264589
[details]
> new X86_64 Linux performance results with LLVM 3.6
quick summary: --------------- 1.0978x slower on SunSpider 1.2497x faster on LongSpider 1.1041x slower on V8Spider 1.3198x faster on Octane 1.3772x faster on Kraken 1.0583x faster on JSRegress
Csaba Osztrogonác
Comment 23
2015-11-02 08:41:50 PST
(In reply to
comment #21
)
> Created
attachment 264590
[details]
> new X86_64 Linux performance results with LLVM 3.7
quick summary: --------------- 1.0915x slower on SunSpider 1.2202x faster on LongSpider 1.0974x slower on V8Spider 1.2922x faster on Octane 1.3544x faster on Kraken 1.1111x faster on JSRegress
Csaba Osztrogonác
Comment 24
2015-11-12 04:09:25 PST
Filip, thanks for the clarification about benchmarks. I didn't know that SunSpider and V8Spider aren't important at all anymore. But you must know that the patch was lying here half year ago and nobody was interested in investigating the performance regression on SunSpider and V8Spider or reviewing the patch. I updated it to the trunk 2 weeks before, let's see what EFL maintainers think about it.
Carlos Garcia Campos
Comment 25
2015-11-12 23:56:18 PST
Ossy, I've just submitted a patch to GTK+ port in
bug #142128
. I took a few bits from your patch, but also updated the jhbuild version to use conditions instead of adding the module from the jhbuildrc. So, I think you could use that for EFL as well. I'm requiring 3.7 for GTK port, because I'm not sure 3.6 is enough. LLVM 3.7 requires a non source dir build, so I had to enable buildroot option globally. You could do the same now as well, since you will have to do it once you update to 3.7 eventually.
Csaba Osztrogonác
Comment 26
2015-11-13 03:22:21 PST
(In reply to
comment #25
)
> Ossy, I've just submitted a patch to GTK+ port in
bug #142128
. I took a few > bits from your patch, but also updated the jhbuild version to use conditions > instead of adding the module from the jhbuildrc. So, I think you could use > that for EFL as well. I'm requiring 3.7 for GTK port, because I'm not sure > 3.6 is enough. LLVM 3.7 requires a non source dir build, so I had to enable > buildroot option globally. You could do the same now as well, since you will > have to do it once you update to 3.7 eventually.
Thanks, I'll update the EFL part once the GTK patch landed. LLVM 3.6 (shipped with Ubuntu 15.04) and LLVM 3.7 (built from source) work fine with FTL JIT. Yes, I noticed the in-source build issue with 3.7 too, EFL has only 5 modules which don't support non in source build, so we can migrate to separated buildroot too in the near future. This conditional feature in jhbuild is good, I like it. :)
Gyuyoung Kim
Comment 27
2015-11-15 22:02:57 PST
(In reply to
comment #24
)
> I updated it to the trunk 2 weeks before, let's > see what EFL maintainers think about it.
Should I do something to enable FTL JIT by default ? Or do you need my help ?
Csaba Osztrogonác
Comment 28
2015-11-16 03:10:09 PST
(In reply to
comment #27
)
> (In reply to
comment #24
) > > > I updated it to the trunk 2 weeks before, let's > > see what EFL maintainers think about it. > > Should I do something to enable FTL JIT by default ? Or do you need my help ?
I only need an approval that EFL port want to enable FTL JIT. I'm not the person who can decide it or not. And I need an r+, of course. :) But let's wait for
bug142128
, and then I'll update the patch.
Csaba Osztrogonác
Comment 29
2015-11-19 06:55:52 PST
Created
attachment 265864
[details]
Patch Updated after
http://trac.webkit.org/changeset/192469
, additionally enabled FTL JIT on GTK in build-jsc script too and moved X86_64 platform detection to the jhbuildrc_common.py.
Csaba Osztrogonác
Comment 30
2015-11-19 08:52:41 PST
any opinion from Samsung?
Joonghun Park
Comment 31
2015-11-19 16:25:57 PST
I think it's a good idea to proceed with this :)
WebKit Commit Bot
Comment 32
2015-11-20 03:38:15 PST
Comment on
attachment 265864
[details]
Patch Clearing flags on attachment: 265864 Committed
r192682
: <
http://trac.webkit.org/changeset/192682
>
WebKit Commit Bot
Comment 33
2015-11-20 03:38:25 PST
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug