| Summary: | [EFL] Enable FTL JIT by default on X86_64 | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Csaba Osztrogonác <ossy> | ||||||||||||||||||||
| Component: | New Bugs | Assignee: | Csaba Osztrogonác <ossy> | ||||||||||||||||||||
| Status: | RESOLVED FIXED | ||||||||||||||||||||||
| Severity: | Normal | CC: | benjamin, cgarcia, commit-queue, dbates, fpizlo, gyuyoung.kim, hs85.jeong, hyuki.kim, jh718.park, mcatanzaro, ossy, ysuzuki | ||||||||||||||||||||
| Priority: | P2 | ||||||||||||||||||||||
| Version: | 528+ (Nightly build) | ||||||||||||||||||||||
| Hardware: | Unspecified | ||||||||||||||||||||||
| OS: | Unspecified | ||||||||||||||||||||||
| Bug Depends on: | 143087, 143089 | ||||||||||||||||||||||
| Bug Blocks: | 143604, 143605 | ||||||||||||||||||||||
| Attachments: |
|
||||||||||||||||||||||
|
Description
Csaba Osztrogonác
2015-04-16 05:18:38 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 Created attachment 250919 [details] Patch bug143604 is fixed, uploading again to make EFL EWS green 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.
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.
I guess this is due to memory allocation in LLVM. LLVM utilizes system allocator instead of bmalloc. What do you think about this? 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
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
(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? (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? (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. (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. (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@? "No further objections from me." Created attachment 264134 [details]
Patch
updated to ToT
Created attachment 264144 [details]
Patch
Additionally run FTL tests by default
(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. (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. (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. Comment on attachment 264144 [details] Patch It's ready for review, but I would like to land manually once bug150616 is fixed. Created attachment 264589 [details]
new X86_64 Linux performance results with LLVM 3.6
Created attachment 264590 [details]
new X86_64 Linux performance results with LLVM 3.7
(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 (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 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. 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. (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. :) (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 ? (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. 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. any opinion from Samsung? I think it's a good idea to proceed with this :) Comment on attachment 265864 [details] Patch Clearing flags on attachment: 265864 Committed r192682: <http://trac.webkit.org/changeset/192682> All reviewed patches have been landed. Closing bug. |