| Summary: | Better optimize 'if' with ternaries conditional tests. | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | dougc <dtc-llvm> | ||||||||
| Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||||||
| Status: | RESOLVED FIXED | ||||||||||
| Severity: | Normal | CC: | fpizlo, webkit-bug-importer | ||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||
| Version: | 528+ (Nightly build) | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Bug Depends on: | 145134, 145137 | ||||||||||
| Bug Blocks: | |||||||||||
| Attachments: |
|
||||||||||
|
Description
dougc
2015-04-23 18:23:31 PDT
This might be a hole in LLVM's CFG transforms. It might also just be a matter of running some LLVM phase that we currently fail to run. What about the generated machine code for "if (a?b:0)" is better than the code for "if (a && b)"? Created attachment 251528 [details]
Example that runs slowly and uses a ternary conditional.
Created attachment 251529 [details]
Example that is competitively fast, and uses the 'if () if()' pattern.
(In reply to comment #1) > This might be a hole in LLVM's CFG transforms. It might also just be a > matter of running some LLVM phase that we currently fail to run. > > What about the generated machine code for "if (a?b:0)" is better than the > code for "if (a && b)"? The main loops for the two attached examples: slow: 0x7f198a000330: movzbl %bl, %eax 0x7f198a000333: movzbl (%rax,%r15), %ecx 0x7f198a000338: cmpl $1, %ecx 0x7f198a00033b: jne 0x7f198a000370 0x7f198a00033d: movzbl 1(%rax,%r15), %ecx 0x7f198a000343: cmpl $2, %ecx 0x7f198a000346: jne 0x7f198a000370 0x7f198a000348: movzbl 2(%rax,%r15), %ecx 0x7f198a00034e: cmpl $3, %ecx 0x7f198a000351: jne 0x7f198a000370 0x7f198a000353: movzbl 3(%rax,%r15), %eax 0x7f198a000359: cmpl $4, %eax 0x7f198a00035c: sete %al 0x7f198a00035f: movzbl %al, %eax 0x7f198a000362: jmp 0x7f198a000390 0x7f198a000364: nopw %cs:(%rax,%rax) 0x7f198a000370: movl $2147483648, 36(%rbp) 0x7f198a000377: leaq 131779232(%r15), %rax 0x7f198a00037e: movq %rbp, %rdi 0x7f198a000381: movq %r14, %rsi 0x7f198a000384: callq *%rax 0x7f198a000386: cmpq $0, -2216120(%r15) 0x7f198a00038e: jne 0x7f198a0003b6 0x7f198a000390: testq %rax, %rax 0x7f198a000393: cmovnel %r13d, %r12d 0x7f198a000397: incl %ebx 0x7f198a000399: cmpl $1000000000, %ebx 0x7f198a00039f: jl 0x7f198a000330 fast: 0x7f81720002e0: movzbl %cl, %edi 0x7f81720002e3: movzbl (%rdi,%rax), %esi 0x7f81720002e7: cmpl $1, %esi 0x7f81720002ea: jne 0x7f8172000320 0x7f81720002ec: movzbl 1(%rdi,%rax), %esi 0x7f81720002f1: cmpl $2, %esi 0x7f81720002f4: jne 0x7f8172000320 0x7f81720002f6: movzbl 2(%rdi,%rax), %esi 0x7f81720002fb: cmpl $3, %esi 0x7f81720002fe: jne 0x7f8172000320 0x7f8172000300: movzbl 3(%rdi,%rax), %esi 0x7f8172000305: movl $1, %edi 0x7f817200030a: cmpl $4, %esi 0x7f817200030d: je 0x7f8172000311 0x7f817200030f: movl %edx, %edi 0x7f8172000311: movl %edi, %edx 0x7f8172000313: nopw %cs:(%rax,%rax) 0x7f8172000320: incl %ecx 0x7f8172000322: cmpl $1000000000, %ecx 0x7f8172000328: jl 0x7f81720002e0 (In reply to comment #4) > (In reply to comment #1) > > This might be a hole in LLVM's CFG transforms. It might also just be a > > matter of running some LLVM phase that we currently fail to run. > > > > What about the generated machine code for "if (a?b:0)" is better than the > > code for "if (a && b)"? > > The main loops for the two attached examples: > > slow: > 0x7f198a000330: movzbl %bl, %eax > 0x7f198a000333: movzbl (%rax,%r15), %ecx > 0x7f198a000338: cmpl $1, %ecx > 0x7f198a00033b: jne 0x7f198a000370 > 0x7f198a00033d: movzbl 1(%rax,%r15), %ecx > 0x7f198a000343: cmpl $2, %ecx > 0x7f198a000346: jne 0x7f198a000370 > 0x7f198a000348: movzbl 2(%rax,%r15), %ecx > 0x7f198a00034e: cmpl $3, %ecx > 0x7f198a000351: jne 0x7f198a000370 > 0x7f198a000353: movzbl 3(%rax,%r15), %eax > 0x7f198a000359: cmpl $4, %eax > 0x7f198a00035c: sete %al > 0x7f198a00035f: movzbl %al, %eax Oh wow, this sequence is really dumb. > 0x7f198a000362: jmp 0x7f198a000390 > 0x7f198a000364: nopw %cs:(%rax,%rax) > 0x7f198a000370: movl $2147483648, 36(%rbp) > 0x7f198a000377: leaq 131779232(%r15), %rax > 0x7f198a00037e: movq %rbp, %rdi > 0x7f198a000381: movq %r14, %rsi > 0x7f198a000384: callq *%rax > 0x7f198a000386: cmpq $0, -2216120(%r15) > 0x7f198a00038e: jne 0x7f198a0003b6 > 0x7f198a000390: testq %rax, %rax > 0x7f198a000393: cmovnel %r13d, %r12d Yuck! > 0x7f198a000397: incl %ebx > 0x7f198a000399: cmpl $1000000000, %ebx > 0x7f198a00039f: jl 0x7f198a000330 > > fast: > 0x7f81720002e0: movzbl %cl, %edi > 0x7f81720002e3: movzbl (%rdi,%rax), %esi > 0x7f81720002e7: cmpl $1, %esi > 0x7f81720002ea: jne 0x7f8172000320 > 0x7f81720002ec: movzbl 1(%rdi,%rax), %esi > 0x7f81720002f1: cmpl $2, %esi > 0x7f81720002f4: jne 0x7f8172000320 > 0x7f81720002f6: movzbl 2(%rdi,%rax), %esi > 0x7f81720002fb: cmpl $3, %esi > 0x7f81720002fe: jne 0x7f8172000320 > 0x7f8172000300: movzbl 3(%rdi,%rax), %esi > 0x7f8172000305: movl $1, %edi > 0x7f817200030a: cmpl $4, %esi > 0x7f817200030d: je 0x7f8172000311 > 0x7f817200030f: movl %edx, %edi > 0x7f8172000311: movl %edi, %edx > 0x7f8172000313: nopw %cs:(%rax,%rax) > 0x7f8172000320: incl %ecx > 0x7f8172000322: cmpl $1000000000, %ecx > 0x7f8172000328: jl 0x7f81720002e0 Yup, LLVM bug. Maybe we can work around it - but it seems that this should be fixed in LLVM. Turns out that this is mostly our fault: https://bugs.webkit.org/show_bug.cgi?id=145134 Performance of another fix for this: Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on dethklok (MacBookPro9,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r184521) "BoolIntSpec" at /Volumes/Data/pizlo/primary/OpenSource/WebKitBuild/Release/jsc (r184539) Collected 6 samples per benchmark/VM, with 6 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree BoolIntSpec SunSpider: 3d-cube 5.2389+-0.1837 ? 5.4714+-0.4408 ? might be 1.0444x slower 3d-morph 6.1089+-0.5975 5.8389+-0.1237 might be 1.0462x faster 3d-raytrace 6.4608+-0.1467 ? 6.4680+-0.0823 ? access-binary-trees 2.4204+-0.2364 2.3655+-0.0549 might be 1.0232x faster access-fannkuch 6.1261+-0.1572 6.0500+-0.1923 might be 1.0126x faster access-nbody 3.1052+-0.4212 ? 3.2356+-0.4077 ? might be 1.0420x slower access-nsieve 3.3555+-0.5282 3.2128+-0.1790 might be 1.0444x faster bitops-3bit-bits-in-byte 1.6433+-0.1032 1.6060+-0.0977 might be 1.0232x faster bitops-bits-in-byte 3.6718+-0.1296 3.6648+-0.0868 bitops-bitwise-and 2.1230+-0.0302 ? 2.1626+-0.0855 ? might be 1.0186x slower bitops-nsieve-bits 3.1461+-0.0335 ! 3.5529+-0.3195 ! definitely 1.1293x slower controlflow-recursive 2.4514+-0.1474 ? 2.4689+-0.3936 ? crypto-aes 4.5749+-0.2214 4.5010+-0.1212 might be 1.0164x faster crypto-md5 3.0698+-0.2000 ? 3.0929+-0.2151 ? crypto-sha1 2.7375+-0.1867 ? 2.8903+-0.1615 ? might be 1.0558x slower date-format-tofte 9.2392+-0.3479 ? 9.3110+-0.2581 ? date-format-xparb 6.0932+-0.5515 5.7590+-0.1953 might be 1.0580x faster math-cordic 3.2865+-0.1542 ? 3.3146+-0.2982 ? math-partial-sums 5.8240+-0.8579 5.3164+-0.1109 might be 1.0955x faster math-spectral-norm 2.0618+-0.0981 2.0352+-0.0804 might be 1.0131x faster regexp-dna 7.9430+-1.2237 ? 8.2325+-1.6386 ? might be 1.0365x slower string-base64 5.0492+-0.9149 ? 5.4366+-1.3402 ? might be 1.0767x slower string-fasta 6.7699+-0.2967 ? 6.8664+-0.6836 ? might be 1.0143x slower string-tagcloud 9.3368+-0.3944 ? 10.0180+-0.7678 ? might be 1.0730x slower string-unpack-code 20.7299+-0.2974 ? 21.1888+-1.6278 ? might be 1.0221x slower string-validate-input 5.0249+-0.1496 ? 5.0367+-0.1830 ? <arithmetic> 5.2920+-0.0449 ? 5.3499+-0.1234 ? might be 1.0109x slower TipOfTree BoolIntSpec LongSpider: 3d-cube 883.5947+-5.5033 ? 883.8420+-3.9376 ? 3d-morph 1529.9083+-6.9475 ? 1530.6180+-7.9550 ? 3d-raytrace 703.5435+-4.0062 ? 718.2096+-12.0467 ? might be 1.0208x slower access-binary-trees 980.1003+-4.4750 974.0511+-5.6473 access-fannkuch 328.4927+-7.3536 323.1925+-9.3148 might be 1.0164x faster access-nbody 618.7614+-3.3187 ? 621.5809+-4.8341 ? access-nsieve 477.5869+-8.8358 ? 479.1353+-6.8137 ? bitops-3bit-bits-in-byte 44.9959+-1.8042 ? 45.0767+-2.7708 ? bitops-bits-in-byte 102.1683+-4.0563 ? 102.5206+-1.8904 ? bitops-nsieve-bits 419.5336+-2.1987 ? 420.0387+-2.2051 ? controlflow-recursive 492.7110+-10.8540 ? 500.3354+-9.4843 ? might be 1.0155x slower crypto-aes 702.9667+-5.8767 702.8933+-7.7401 crypto-md5 527.0466+-5.0799 ^ 515.3535+-6.0449 ^ definitely 1.0227x faster crypto-sha1 595.4303+-2.9168 ? 600.1880+-16.8019 ? date-format-tofte 730.0927+-10.3938 ? 737.5282+-13.4925 ? might be 1.0102x slower date-format-xparb 787.0503+-29.0556 ? 809.3883+-105.7527 ? might be 1.0284x slower hash-map 172.5697+-2.4911 ? 173.1048+-3.1846 ? math-cordic 589.3529+-2.5945 588.9273+-5.5894 math-partial-sums 507.9875+-7.6601 ? 508.9173+-11.4319 ? math-spectral-norm 563.3840+-0.7474 ? 563.8230+-2.0377 ? string-base64 387.0271+-6.7387 385.3475+-3.1476 string-fasta 429.4744+-5.6273 ? 437.6680+-3.3692 ? might be 1.0191x slower string-tagcloud 197.0506+-3.4544 ? 203.5125+-5.2484 ? might be 1.0328x slower <geometric> 449.6215+-1.7404 ? 451.5344+-2.2480 ? might be 1.0043x slower TipOfTree BoolIntSpec V8Spider: crypto 56.4034+-2.6669 ? 58.7864+-1.2729 ? might be 1.0422x slower deltablue 99.3724+-3.9996 ? 99.7380+-4.6827 ? earley-boyer 48.5664+-2.8933 48.2881+-3.3690 raytrace 40.5133+-2.0820 39.1307+-3.8100 might be 1.0353x faster regexp 80.3853+-2.2554 ? 80.4203+-2.0039 ? richards 81.3835+-3.3516 79.4982+-3.6194 might be 1.0237x faster splay 40.2080+-1.5275 39.7500+-1.6245 might be 1.0115x faster <geometric> 60.2719+-1.3393 59.9869+-0.9283 might be 1.0048x faster TipOfTree BoolIntSpec Octane: encrypt 0.20345+-0.00135 0.20343+-0.00132 decrypt 3.64616+-0.07087 3.60238+-0.06143 might be 1.0122x faster deltablue x2 0.20320+-0.01375 0.19714+-0.00104 might be 1.0307x faster earley 0.39634+-0.00436 0.39426+-0.00368 boyer 5.11354+-0.02240 ? 5.13278+-0.05283 ? navier-stokes x2 5.18153+-0.01647 5.17050+-0.00387 raytrace x2 1.22613+-0.04303 ? 1.24317+-0.04491 ? might be 1.0139x slower richards x2 0.12251+-0.00123 ? 0.12261+-0.00140 ? splay x2 0.40027+-0.00524 0.39816+-0.00289 regexp x2 31.93295+-0.60568 31.45226+-0.29395 might be 1.0153x faster pdfjs x2 43.07510+-0.20723 ? 43.15980+-0.19576 ? mandreel x2 50.03154+-0.55008 ? 50.03724+-0.47480 ? gbemu x2 42.50785+-2.19792 41.76754+-0.34029 might be 1.0177x faster closure 0.56058+-0.00278 ? 0.56371+-0.00216 ? jquery 7.16894+-0.05739 ? 7.18442+-0.04332 ? box2d x2 12.55960+-0.12397 ? 12.57111+-0.03810 ? zlib x2 394.39602+-12.00826 394.09907+-13.08779 typescript x2 819.27913+-9.94474 ? 823.55827+-14.91660 ? <geometric> 6.57145+-0.03539 6.55006+-0.01623 might be 1.0033x faster TipOfTree BoolIntSpec Kraken: ai-astar 236.109+-1.924 ? 236.130+-2.325 ? audio-beat-detection 107.134+-0.799 107.005+-0.834 audio-dft 120.062+-3.229 119.067+-1.965 audio-fft 85.910+-4.693 ? 87.190+-5.488 ? might be 1.0149x slower audio-oscillator 79.804+-3.763 79.208+-1.676 imaging-darkroom 104.476+-1.941 ? 104.781+-1.828 ? imaging-desaturate 63.075+-0.403 ? 63.515+-1.879 ? imaging-gaussian-blur 110.677+-1.972 ? 111.444+-1.560 ? json-parse-financial 47.427+-2.490 46.176+-1.639 might be 1.0271x faster json-stringify-tinderbox 28.854+-1.825 28.562+-0.335 might be 1.0102x faster stanford-crypto-aes 58.549+-1.064 58.447+-0.785 stanford-crypto-ccm 52.039+-2.203 51.444+-1.232 might be 1.0116x faster stanford-crypto-pbkdf2 119.749+-1.663 118.374+-1.937 might be 1.0116x faster stanford-crypto-sha256-iterative 46.680+-1.613 46.364+-1.730 <arithmetic> 90.039+-1.055 89.836+-0.552 might be 1.0023x faster TipOfTree BoolIntSpec JSRegress: abs-boolean 2.7876+-0.1095 2.6582+-0.0569 might be 1.0487x faster adapt-to-double-divide 17.0508+-0.4777 17.0024+-0.6398 aliased-arguments-getbyval 1.2920+-0.0642 ? 1.3153+-0.1568 ? might be 1.0180x slower allocate-big-object 2.9588+-0.1256 2.8011+-0.0671 might be 1.0563x faster arguments-named-and-reflective 12.8151+-1.1229 ? 13.5955+-1.7606 ? might be 1.0609x slower arguments-out-of-bounds 14.7999+-0.3137 ? 15.0169+-0.7465 ? might be 1.0147x slower arguments-strict-mode 12.0669+-0.9256 ? 12.1999+-0.9937 ? might be 1.0110x slower arguments 11.4152+-1.0349 ^ 10.0626+-0.2482 ^ definitely 1.1344x faster arity-mismatch-inlining 0.8837+-0.0350 ? 0.8995+-0.0370 ? might be 1.0178x slower array-access-polymorphic-structure 6.7325+-0.1265 ? 6.8432+-0.0979 ? might be 1.0164x slower array-nonarray-polymorhpic-access 33.6294+-0.4739 33.1976+-1.0304 might be 1.0130x faster array-prototype-every 86.9688+-3.6473 85.1381+-3.5237 might be 1.0215x faster array-prototype-forEach 86.5005+-1.6587 85.5065+-1.9673 might be 1.0116x faster array-prototype-map 94.6635+-1.4463 92.8283+-1.0418 might be 1.0198x faster array-prototype-some 85.9272+-1.8799 ? 86.6708+-2.2367 ? array-splice-contiguous 42.2173+-2.0758 ? 42.5205+-2.1159 ? array-with-double-add 4.3494+-0.4613 4.1258+-0.0440 might be 1.0542x faster array-with-double-increment 3.3719+-0.2626 3.2966+-0.1435 might be 1.0228x faster array-with-double-mul-add 5.0247+-0.1638 ? 5.0722+-0.1838 ? array-with-double-sum 3.6372+-0.6372 3.3966+-0.2516 might be 1.0708x faster array-with-int32-add-sub 6.8291+-0.1203 6.8104+-0.1976 array-with-int32-or-double-sum 3.3716+-0.0384 ? 3.5343+-0.4177 ? might be 1.0483x slower ArrayBuffer-DataView-alloc-large-long-lived 33.3518+-2.1840 ? 33.7090+-1.6918 ? might be 1.0107x slower ArrayBuffer-DataView-alloc-long-lived 14.4155+-1.7674 14.1609+-1.4233 might be 1.0180x faster ArrayBuffer-Int32Array-byteOffset 4.0227+-0.4023 3.8875+-0.0904 might be 1.0348x faster ArrayBuffer-Int8Array-alloc-large-long-lived 32.7657+-1.3753 ? 32.7778+-2.0520 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 25.3801+-5.4121 22.6709+-1.5029 might be 1.1195x faster ArrayBuffer-Int8Array-alloc-long-lived 12.9069+-1.7797 ? 13.1502+-1.1916 ? might be 1.0188x slower ArrayBuffer-Int8Array-alloc 11.8150+-1.1535 10.8099+-1.6191 might be 1.0930x faster asmjs_bool_bug 7.4146+-0.0716 ? 7.6236+-0.2003 ? might be 1.0282x slower assign-custom-setter-polymorphic 3.2024+-0.0832 3.0990+-0.2226 might be 1.0334x faster assign-custom-setter 4.7976+-0.8710 ? 4.8410+-1.2685 ? basic-set 8.7978+-0.3603 8.7199+-0.3174 big-int-mul 4.0615+-0.0889 4.0608+-0.1740 boolean-test 3.1831+-0.1961 3.0720+-0.0444 might be 1.0362x faster branch-fold 3.9354+-0.3089 3.7299+-0.0312 might be 1.0551x faster branch-on-string-as-boolean 19.8607+-1.7960 ? 20.1292+-2.0308 ? might be 1.0135x slower by-val-generic 8.1512+-0.3091 ? 8.2402+-0.6740 ? might be 1.0109x slower call-spread-apply 29.8175+-1.5875 ? 30.2605+-1.4559 ? might be 1.0149x slower call-spread-call 25.4423+-0.8063 ? 26.2179+-2.1484 ? might be 1.0305x slower captured-assignments 0.4462+-0.0155 ? 0.4802+-0.0658 ? might be 1.0762x slower cast-int-to-double 5.3702+-0.1057 5.3575+-0.1363 cell-argument 8.5872+-0.3045 ? 8.7815+-0.4985 ? might be 1.0226x slower cfg-simplify 2.9542+-0.3540 2.8847+-0.1887 might be 1.0241x faster chain-getter-access 9.2509+-0.2778 9.0641+-0.1320 might be 1.0206x faster cmpeq-obj-to-obj-other 11.7700+-1.0341 11.6906+-1.2045 constant-test 6.4427+-3.5193 5.5383+-1.1352 might be 1.1633x faster create-lots-of-functions 11.7802+-0.3586 ? 11.9544+-0.6526 ? might be 1.0148x slower DataView-custom-properties 39.4586+-1.8419 38.2196+-2.4078 might be 1.0324x faster deconstructing-parameters-overridden-by-function 0.5643+-0.0521 ? 0.5675+-0.0845 ? delay-tear-off-arguments-strictmode 14.2187+-0.3344 14.1513+-0.1535 deltablue-varargs 207.8375+-3.7186 ? 208.6033+-2.5913 ? destructuring-arguments 18.3710+-0.7196 18.1116+-0.9785 might be 1.0143x faster destructuring-swap 5.0979+-0.0663 5.0820+-0.0296 direct-arguments-getbyval 1.3804+-0.1154 1.3057+-0.1677 might be 1.0572x faster div-boolean-double 5.2711+-0.0972 ? 5.3543+-0.3211 ? might be 1.0158x slower div-boolean 8.0501+-0.2700 8.0264+-0.2988 double-get-by-val-out-of-bounds 4.5644+-0.0553 4.5568+-0.0330 double-pollution-getbyval 8.9207+-0.1507 8.8775+-0.0849 double-pollution-putbyoffset 4.3520+-0.1769 4.3083+-0.0881 might be 1.0101x faster double-to-int32-typed-array-no-inline 2.3315+-0.2372 2.3237+-0.1102 double-to-int32-typed-array 2.0718+-0.1737 1.9883+-0.0590 might be 1.0420x faster double-to-uint32-typed-array-no-inline 2.3577+-0.1151 ? 2.3901+-0.1300 ? might be 1.0137x slower double-to-uint32-typed-array 2.1206+-0.0967 2.0389+-0.0304 might be 1.0401x faster elidable-new-object-dag 42.8444+-0.8864 ? 43.8203+-1.8462 ? might be 1.0228x slower elidable-new-object-roflcopter 44.3840+-1.3553 ? 44.9463+-1.5655 ? might be 1.0127x slower elidable-new-object-then-call 39.6901+-1.5846 ? 40.6565+-2.0080 ? might be 1.0243x slower elidable-new-object-tree 47.1600+-1.5905 46.0621+-1.5137 might be 1.0238x faster empty-string-plus-int 5.5578+-0.1328 5.5405+-0.1990 emscripten-cube2hash 39.6191+-2.0787 38.8406+-1.9143 might be 1.0200x faster exit-length-on-plain-object 14.9132+-1.7094 14.2535+-0.7104 might be 1.0463x faster external-arguments-getbyval 1.3233+-0.0797 ? 1.3324+-0.1533 ? external-arguments-putbyval 2.3551+-0.1244 2.3379+-0.1054 fixed-typed-array-storage-var-index 1.3549+-0.1911 1.2085+-0.0149 might be 1.1212x faster fixed-typed-array-storage 0.9291+-0.0479 0.9165+-0.0526 might be 1.0137x faster Float32Array-matrix-mult 4.4347+-0.1411 4.3993+-0.1208 Float32Array-to-Float64Array-set 56.4130+-0.9987 ? 57.1275+-3.3881 ? might be 1.0127x slower Float64Array-alloc-long-lived 68.9781+-1.9496 ? 70.1473+-1.7697 ? might be 1.0169x slower Float64Array-to-Int16Array-set 68.3184+-1.6165 ? 78.3512+-17.3110 ? might be 1.1469x slower fold-double-to-int 13.4108+-0.1365 ? 13.4238+-0.2378 ? fold-get-by-id-to-multi-get-by-offset-rare-int 10.1661+-1.3088 ? 10.4575+-0.9022 ? might be 1.0287x slower fold-get-by-id-to-multi-get-by-offset 10.4685+-0.8943 10.3062+-1.0336 might be 1.0157x faster fold-multi-get-by-offset-to-get-by-offset 8.3158+-1.9556 ? 9.8357+-0.4448 ? might be 1.1828x slower fold-multi-get-by-offset-to-poly-get-by-offset 9.0590+-0.8478 ? 9.4589+-0.7259 ? might be 1.0441x slower fold-multi-put-by-offset-to-poly-put-by-offset 8.6405+-1.4533 ? 10.3107+-1.2717 ? might be 1.1933x slower fold-multi-put-by-offset-to-put-by-offset 7.5813+-1.0112 ^ 5.4721+-0.9486 ^ definitely 1.3854x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.5784+-0.3870 ? 9.7420+-0.5651 ? might be 1.0171x slower fold-put-by-id-to-multi-put-by-offset 9.6446+-0.9406 ? 9.6468+-1.0236 ? fold-put-structure 6.7475+-2.0446 6.1100+-1.6521 might be 1.1043x faster for-of-iterate-array-entries 4.8383+-0.2317 4.8076+-0.2112 for-of-iterate-array-keys 3.7615+-0.0722 ? 4.1282+-0.5264 ? might be 1.0975x slower for-of-iterate-array-values 3.9668+-0.6324 3.7116+-0.0720 might be 1.0687x faster fround 21.5970+-0.8822 21.1696+-0.5277 might be 1.0202x faster ftl-library-inlining-dataview 66.5999+-2.9727 ? 67.4645+-2.3878 ? might be 1.0130x slower ftl-library-inlining 76.1938+-11.4468 73.6352+-1.1151 might be 1.0347x faster function-dot-apply 2.3622+-0.3353 2.3616+-0.3389 function-test 2.9547+-0.2895 2.8341+-0.0457 might be 1.0425x faster function-with-eval 105.1833+-0.9889 ? 107.2544+-3.3575 ? might be 1.0197x slower gcse-poly-get-less-obvious 22.5491+-6.0591 18.4538+-0.9111 might be 1.2219x faster gcse-poly-get 19.2860+-1.6018 ? 20.6937+-1.7782 ? might be 1.0730x slower gcse 4.4617+-0.1969 4.4070+-0.1313 might be 1.0124x faster get-by-id-bimorphic-check-structure-elimination-simple 2.7232+-0.0386 ? 2.7517+-0.1228 ? might be 1.0104x slower get-by-id-bimorphic-check-structure-elimination 6.1618+-0.2037 ? 6.1810+-0.2001 ? get-by-id-chain-from-try-block 7.1556+-1.3695 6.9358+-0.7624 might be 1.0317x faster get-by-id-check-structure-elimination 5.2763+-0.2456 5.1473+-0.0871 might be 1.0251x faster get-by-id-proto-or-self 19.7133+-2.2340 19.4064+-2.1896 might be 1.0158x faster get-by-id-quadmorphic-check-structure-elimination-simple 3.2419+-0.2464 ? 3.3253+-0.4265 ? might be 1.0257x slower get-by-id-self-or-proto 19.2970+-1.8530 ? 20.3520+-2.1409 ? might be 1.0547x slower get-by-val-out-of-bounds 4.4800+-0.0467 4.4589+-0.0707 get_callee_monomorphic 2.9921+-0.1878 ? 3.0672+-0.1739 ? might be 1.0251x slower get_callee_polymorphic 3.7630+-0.1790 3.7305+-0.0810 getter-no-activation 5.2118+-0.3658 ? 5.3197+-0.2840 ? might be 1.0207x slower getter-richards 126.9248+-5.3858 ? 128.9834+-6.2150 ? might be 1.0162x slower getter 6.5136+-0.8979 5.7159+-0.5685 might be 1.1396x faster global-var-const-infer-fire-from-opt 1.0461+-0.1054 1.0177+-0.1723 might be 1.0279x faster global-var-const-infer 0.8201+-0.0978 ? 0.8555+-0.0854 ? might be 1.0431x slower HashMap-put-get-iterate-keys 29.4547+-1.3738 ? 29.7352+-3.5141 ? HashMap-put-get-iterate 32.1803+-2.9866 31.6245+-1.9308 might be 1.0176x faster HashMap-string-put-get-iterate 29.6097+-0.3204 29.4003+-1.0689 hoist-make-rope 11.8430+-0.9314 ? 12.5135+-0.7011 ? might be 1.0566x slower hoist-poly-check-structure-effectful-loop 5.0785+-0.0590 ? 5.0822+-0.1455 ? hoist-poly-check-structure 3.6520+-0.0796 3.6073+-0.0280 might be 1.0124x faster imul-double-only 8.8980+-0.7000 8.4281+-0.8058 might be 1.0558x faster imul-int-only 10.2179+-0.7585 ? 10.4200+-0.7335 ? might be 1.0198x slower imul-mixed 8.6082+-0.4221 8.5607+-0.3138 in-four-cases 22.2710+-0.5014 22.2229+-0.2339 in-one-case-false 10.9570+-0.0511 ? 11.4015+-0.5308 ? might be 1.0406x slower in-one-case-true 11.1535+-0.3007 ? 11.2522+-0.5362 ? in-two-cases 11.6785+-0.3031 ? 11.8383+-0.2471 ? might be 1.0137x slower indexed-properties-in-objects 3.0552+-0.3069 ? 3.0815+-0.0278 ? infer-closure-const-then-mov-no-inline 4.2360+-0.3536 3.9681+-0.0862 might be 1.0675x faster infer-closure-const-then-mov 19.9919+-0.7330 ? 20.7971+-1.4066 ? might be 1.0403x slower infer-closure-const-then-put-to-scope-no-inline 12.3442+-0.1727 ? 13.0891+-1.4925 ? might be 1.0603x slower infer-closure-const-then-put-to-scope 22.6654+-2.3580 22.4598+-1.1745 infer-closure-const-then-reenter-no-inline 58.9261+-1.4902 57.5700+-1.9696 might be 1.0236x faster infer-closure-const-then-reenter 23.1859+-1.3484 23.1510+-1.8400 infer-constant-global-property 3.7780+-0.3507 3.6141+-0.1140 might be 1.0454x faster infer-constant-property 2.9899+-0.3915 2.8088+-0.1028 might be 1.0645x faster infer-one-time-closure-ten-vars 12.9147+-0.7582 12.5012+-0.2714 might be 1.0331x faster infer-one-time-closure-two-vars 13.5275+-1.8255 12.7792+-1.3311 might be 1.0586x faster infer-one-time-closure 12.2910+-0.6797 ? 12.5482+-0.9910 ? might be 1.0209x slower infer-one-time-deep-closure 21.9307+-1.0313 ? 21.9316+-1.3862 ? inline-arguments-access 4.6687+-0.2824 4.6257+-0.1308 inline-arguments-aliased-access 4.7666+-0.4336 4.5424+-0.0528 might be 1.0494x faster inline-arguments-local-escape 4.6078+-0.1855 ? 4.6125+-0.1093 ? inline-get-scoped-var 4.8765+-0.2785 ? 4.8868+-0.2380 ? inlined-put-by-id-transition 11.5470+-0.5261 ? 11.5848+-0.6092 ? int-or-other-abs-then-get-by-val 4.9615+-0.0531 ? 4.9712+-0.0538 ? int-or-other-abs-zero-then-get-by-val 17.8529+-1.0524 17.1907+-0.3233 might be 1.0385x faster int-or-other-add-then-get-by-val 4.3420+-0.1336 ? 4.3601+-0.0842 ? int-or-other-add 5.3255+-0.0315 ? 5.4937+-0.4536 ? might be 1.0316x slower int-or-other-div-then-get-by-val 4.3905+-0.1814 4.2480+-0.0821 might be 1.0335x faster int-or-other-max-then-get-by-val 4.3684+-0.1474 4.2997+-0.0482 might be 1.0160x faster int-or-other-min-then-get-by-val 4.4159+-0.0348 ? 4.4312+-0.0992 ? int-or-other-mod-then-get-by-val 4.0060+-0.0439 3.9718+-0.0265 int-or-other-mul-then-get-by-val 3.8515+-0.1598 ? 3.8742+-0.1519 ? int-or-other-neg-then-get-by-val 4.8349+-0.0711 4.7486+-0.0334 might be 1.0182x faster int-or-other-neg-zero-then-get-by-val 17.5333+-0.8856 ? 17.6997+-1.4065 ? int-or-other-sub-then-get-by-val 4.5221+-0.3799 4.4109+-0.0581 might be 1.0252x faster int-or-other-sub 3.5673+-0.0859 3.4803+-0.0355 might be 1.0250x faster int-overflow-local 4.3978+-0.1093 ? 4.5046+-0.0993 ? might be 1.0243x slower Int16Array-alloc-long-lived 49.8057+-1.3203 49.0448+-1.5725 might be 1.0155x faster Int16Array-bubble-sort-with-byteLength 19.0960+-0.1556 ? 19.4186+-0.5034 ? might be 1.0169x slower Int16Array-bubble-sort 21.4048+-4.4046 19.2582+-0.2018 might be 1.1115x faster Int16Array-load-int-mul 1.5057+-0.0292 ? 1.5835+-0.1835 ? might be 1.0517x slower Int16Array-to-Int32Array-set 57.1849+-2.0664 56.9428+-1.6661 Int32Array-alloc-large 23.5930+-0.9332 23.5802+-0.8702 Int32Array-alloc-long-lived 54.8090+-0.9453 54.5370+-1.4311 Int32Array-alloc 3.9292+-0.5265 ^ 3.2838+-0.0495 ^ definitely 1.1966x faster Int32Array-Int8Array-view-alloc 6.7542+-0.1615 ? 6.7841+-0.7158 ? int52-spill 5.8386+-0.0896 ? 5.9643+-0.2969 ? might be 1.0215x slower Int8Array-alloc-long-lived 44.9080+-1.8141 ? 45.0549+-1.5190 ? Int8Array-load-with-byteLength 3.4667+-0.2904 ? 3.6309+-0.4624 ? might be 1.0474x slower Int8Array-load 3.3967+-0.1584 3.3906+-0.1529 integer-divide 11.7502+-1.1153 11.1285+-0.1008 might be 1.0559x faster integer-modulo 2.0202+-0.0636 ? 2.0301+-0.0747 ? is-boolean-fold-tricky 4.6337+-0.5016 ? 4.7238+-0.4156 ? might be 1.0194x slower is-boolean-fold 2.9218+-0.1055 2.9025+-0.1466 is-function-fold-tricky-internal-function 11.9963+-0.1001 ? 12.0938+-0.0521 ? is-function-fold-tricky 4.8967+-0.5984 4.7004+-0.1790 might be 1.0418x faster is-function-fold 2.9232+-0.0733 ? 3.2025+-0.4091 ? might be 1.0955x slower is-number-fold-tricky 4.6647+-0.5304 4.5938+-0.1014 might be 1.0154x faster is-number-fold 2.8571+-0.0727 ? 2.8593+-0.0452 ? is-object-or-null-fold-functions 2.9311+-0.0414 ? 2.9412+-0.0314 ? is-object-or-null-fold-less-tricky 4.6556+-0.1482 4.5815+-0.1191 might be 1.0162x faster is-object-or-null-fold-tricky 6.6933+-0.1341 6.6145+-0.0278 might be 1.0119x faster is-object-or-null-fold 2.9135+-0.0453 2.8599+-0.0454 might be 1.0187x faster is-object-or-null-trickier-function 4.7960+-0.3688 ? 5.0766+-0.6625 ? might be 1.0585x slower is-object-or-null-trickier-internal-function 12.5820+-0.1179 12.5467+-0.0879 is-object-or-null-tricky-function 4.7471+-0.1637 ? 4.7977+-0.3441 ? might be 1.0107x slower is-object-or-null-tricky-internal-function 9.4057+-0.0869 9.2839+-0.1439 might be 1.0131x faster is-string-fold-tricky 4.5693+-0.1238 4.5100+-0.1053 might be 1.0132x faster is-string-fold 3.0158+-0.3348 2.8953+-0.0982 might be 1.0416x faster is-undefined-fold-tricky 3.8291+-0.1197 ? 3.8409+-0.1537 ? is-undefined-fold 2.8706+-0.1100 ? 3.1695+-0.4491 ? might be 1.1041x slower large-int-captured 4.8625+-0.1398 4.7650+-0.0433 might be 1.0205x faster large-int-neg 16.5145+-0.8608 ? 16.5338+-0.7745 ? large-int 15.6056+-1.4235 15.4023+-1.4030 might be 1.0132x faster load-varargs-elimination 23.3463+-0.4731 ? 23.4840+-1.2490 ? logical-not 4.6615+-0.0411 ? 4.6995+-0.1464 ? lots-of-fields 12.9591+-1.1744 12.7508+-0.4297 might be 1.0163x faster make-indexed-storage 3.1215+-0.0906 ? 3.1677+-0.0642 ? might be 1.0148x slower make-rope-cse 5.0326+-0.5103 ? 5.1532+-0.5076 ? might be 1.0240x slower marsaglia-larger-ints 35.9801+-0.3718 ? 37.0983+-1.1144 ? might be 1.0311x slower marsaglia-osr-entry 23.1549+-0.1910 ! 25.4305+-1.8859 ! definitely 1.0983x slower max-boolean 2.5227+-0.0519 ? 2.6249+-0.3019 ? might be 1.0405x slower method-on-number 19.2884+-0.1897 ^ 18.4680+-0.2528 ^ definitely 1.0444x faster min-boolean 2.7411+-0.3757 2.6244+-0.1746 might be 1.0445x faster minus-boolean-double 3.1707+-0.0766 ? 3.2215+-0.0848 ? might be 1.0160x slower minus-boolean 2.3607+-0.0576 ? 2.6119+-0.3761 ? might be 1.1064x slower misc-strict-eq 41.4100+-3.3380 39.0376+-1.1264 might be 1.0608x faster mod-boolean-double 11.2101+-0.5737 11.1420+-0.3309 mod-boolean 7.8695+-0.1056 ? 7.9270+-0.1083 ? mul-boolean-double 3.8487+-0.1868 3.7403+-0.0977 might be 1.0290x faster mul-boolean 2.9295+-0.0639 2.9149+-0.0720 neg-boolean 3.3199+-0.3758 3.2278+-0.1469 might be 1.0285x faster negative-zero-divide 0.4029+-0.0454 0.3993+-0.0565 negative-zero-modulo 0.3807+-0.0422 ? 0.4100+-0.0644 ? might be 1.0771x slower negative-zero-negate 0.3441+-0.0389 0.3420+-0.0071 nested-function-parsing 38.0290+-0.2629 ? 38.5387+-0.8917 ? might be 1.0134x slower new-array-buffer-dead 112.0516+-2.4791 ? 114.1524+-1.5948 ? might be 1.0187x slower new-array-buffer-push 7.5903+-0.9575 7.2343+-0.6949 might be 1.0492x faster new-array-dead 19.6376+-0.5973 ? 19.9492+-1.2312 ? might be 1.0159x slower new-array-push 3.9206+-0.1279 3.8662+-0.0982 might be 1.0141x faster no-inline-constructor 40.5932+-1.4216 ? 41.9371+-1.4483 ? might be 1.0331x slower number-test 3.2506+-0.2914 3.1207+-0.1452 might be 1.0416x faster object-closure-call 5.5908+-0.0322 ? 5.6006+-0.0326 ? object-test 2.8241+-0.0593 ? 2.9038+-0.0410 ? might be 1.0282x slower obvious-sink-pathology-taken 140.8939+-1.3734 ? 141.4497+-2.2341 ? obvious-sink-pathology 132.4401+-1.1983 131.4785+-1.2166 obviously-elidable-new-object 36.4556+-1.1604 35.5431+-0.5284 might be 1.0257x faster plus-boolean-arith 2.7516+-0.3336 2.5900+-0.1431 might be 1.0624x faster plus-boolean-double 3.2360+-0.0647 ? 3.3090+-0.2228 ? might be 1.0225x slower plus-boolean 2.4088+-0.0507 2.4058+-0.0320 poly-chain-access-different-prototypes-simple 3.2878+-0.0421 ? 3.3438+-0.1504 ? might be 1.0170x slower poly-chain-access-different-prototypes 2.5741+-0.0116 ? 2.6533+-0.2243 ? might be 1.0308x slower poly-chain-access-simpler 3.4762+-0.4406 3.3099+-0.0560 might be 1.0502x faster poly-chain-access 2.6337+-0.0714 ? 2.6528+-0.1048 ? poly-stricteq 59.0583+-0.8188 58.8917+-1.1588 polymorphic-array-call 1.3647+-0.0709 ? 1.4200+-0.1364 ? might be 1.0405x slower polymorphic-get-by-id 3.2699+-0.3851 3.1265+-0.0685 might be 1.0459x faster polymorphic-put-by-id 33.9565+-2.5871 32.6481+-2.8903 might be 1.0401x faster polymorphic-structure 14.8558+-0.2354 ? 14.9513+-0.2996 ? polyvariant-monomorphic-get-by-id 8.7703+-0.2664 8.6108+-0.1105 might be 1.0185x faster proto-getter-access 9.1464+-0.1391 8.9803+-0.0744 might be 1.0185x faster put-by-id-replace-and-transition 9.4722+-0.2475 9.2120+-0.0578 might be 1.0282x faster put-by-id-slightly-polymorphic 3.0584+-0.3106 2.8863+-0.1215 might be 1.0596x faster put-by-id 13.4920+-0.6078 12.7779+-0.1719 might be 1.0559x faster put-by-val-direct 0.3511+-0.0127 ? 0.3716+-0.0246 ? might be 1.0583x slower put-by-val-large-index-blank-indexing-type 6.2827+-0.6552 ? 6.6811+-0.7926 ? might be 1.0634x slower put-by-val-machine-int 2.6987+-0.0414 ? 2.7969+-0.1617 ? might be 1.0364x slower rare-osr-exit-on-local 15.3201+-0.8732 ? 15.4776+-0.7474 ? might be 1.0103x slower register-pressure-from-osr 21.7500+-0.8922 21.1917+-0.1391 might be 1.0263x faster setter 6.3315+-0.6583 6.2283+-0.9669 might be 1.0166x faster simple-activation-demo 25.3090+-0.4951 ? 26.4168+-2.0386 ? might be 1.0438x slower simple-getter-access 11.8829+-0.2360 ? 11.8853+-0.2398 ? simple-poly-call-nested 8.6085+-0.6958 8.0682+-0.3671 might be 1.0670x faster simple-poly-call 1.3660+-0.1643 1.3005+-0.0359 might be 1.0503x faster sin-boolean 23.1607+-1.1734 ? 23.5621+-1.6156 ? might be 1.0173x slower singleton-scope 62.8617+-1.5969 62.6801+-1.4811 sink-function 12.4758+-0.4987 12.2645+-0.2468 might be 1.0172x faster sink-huge-activation 20.1477+-1.2372 19.5266+-0.5383 might be 1.0318x faster sinkable-new-object-dag 71.1024+-2.8376 70.5653+-1.3873 sinkable-new-object-taken 53.9981+-3.2548 51.9679+-2.3984 might be 1.0391x faster sinkable-new-object 39.4790+-1.3053 39.3226+-1.6785 slow-array-profile-convergence 2.8420+-0.1385 ? 3.0634+-0.3533 ? might be 1.0779x slower slow-convergence 2.8562+-0.3060 2.7302+-0.0721 might be 1.0462x faster slow-ternaries 30.3178+-2.0924 ^ 22.1676+-2.0780 ^ definitely 1.3677x faster sorting-benchmark 19.7873+-0.2025 ? 19.8093+-0.7345 ? sparse-conditional 1.1529+-0.0173 ? 1.1819+-0.0775 ? might be 1.0252x slower splice-to-remove 16.3774+-0.3046 ? 17.0612+-2.2446 ? might be 1.0417x slower string-char-code-at 16.2199+-1.0031 15.7826+-0.2937 might be 1.0277x faster string-concat-object 2.6276+-0.1801 ? 2.8027+-0.3503 ? might be 1.0666x slower string-concat-pair-object 2.5916+-0.0731 2.5529+-0.1098 might be 1.0151x faster string-concat-pair-simple 13.1425+-2.2900 12.6032+-1.3271 might be 1.0428x faster string-concat-simple 12.6005+-1.2266 11.9412+-0.3155 might be 1.0552x faster string-cons-repeat 8.5621+-0.7527 8.3472+-0.5384 might be 1.0257x faster string-cons-tower 9.2365+-1.0501 8.5847+-0.8811 might be 1.0759x faster string-equality 19.1684+-0.8837 18.9944+-0.5745 string-get-by-val-big-char 7.4342+-0.3294 7.2940+-0.1639 might be 1.0192x faster string-get-by-val-out-of-bounds-insane 3.6704+-0.2974 ? 3.7952+-0.5329 ? might be 1.0340x slower string-get-by-val-out-of-bounds 5.5275+-0.5525 5.3207+-0.3660 might be 1.0389x faster string-get-by-val 3.3523+-0.2356 3.2826+-0.0865 might be 1.0212x faster string-hash 2.0700+-0.0801 2.0391+-0.0237 might be 1.0152x faster string-long-ident-equality 15.7182+-0.3176 15.5611+-0.2521 might be 1.0101x faster string-out-of-bounds 14.8100+-0.2329 ? 15.3347+-1.1013 ? might be 1.0354x slower string-repeat-arith 33.5410+-2.0538 33.2472+-2.1685 string-sub 65.7166+-3.1251 ? 67.8753+-2.1249 ? might be 1.0328x slower string-test 2.8993+-0.0745 ? 2.9834+-0.1037 ? might be 1.0290x slower string-var-equality 33.0846+-1.1051 ? 34.1538+-3.0902 ? might be 1.0323x slower structure-hoist-over-transitions 2.7764+-0.1215 ? 2.8218+-0.1481 ? might be 1.0164x slower substring-concat-weird 40.1305+-0.7817 ? 41.0621+-1.9227 ? might be 1.0232x slower substring-concat 44.1703+-1.8740 43.6440+-1.3957 might be 1.0121x faster substring 46.4255+-1.3795 ? 47.0370+-2.4405 ? might be 1.0132x slower switch-char-constant 2.7636+-0.0454 ? 2.7681+-0.0373 ? switch-char 7.7638+-1.4230 7.0290+-0.8818 might be 1.1045x faster switch-constant 8.8902+-0.6080 8.6934+-0.3028 might be 1.0226x faster switch-string-basic-big-var 19.2320+-0.9851 18.5036+-0.1999 might be 1.0394x faster switch-string-basic-big 14.8532+-0.2796 14.8392+-0.4469 switch-string-basic-var 15.3112+-0.2984 15.0876+-0.1583 might be 1.0148x faster switch-string-basic 13.3564+-0.2939 ? 13.3767+-0.1710 ? switch-string-big-length-tower-var 20.6409+-0.6812 20.1085+-0.2742 might be 1.0265x faster switch-string-length-tower-var 15.5468+-0.1961 ? 15.9150+-1.3430 ? might be 1.0237x slower switch-string-length-tower 12.8900+-0.2970 ? 13.3346+-1.0443 ? might be 1.0345x slower switch-string-short 13.2427+-0.7544 12.9244+-0.1071 might be 1.0246x faster switch 12.7831+-0.2152 12.7216+-0.1322 tear-off-arguments-simple 3.7890+-0.7528 3.5595+-0.0352 might be 1.0645x faster tear-off-arguments 4.8413+-0.1424 4.7991+-0.0465 temporal-structure 12.2369+-0.1091 ? 12.2453+-0.3428 ? to-int32-boolean 13.8418+-0.1759 ? 14.0828+-1.0741 ? might be 1.0174x slower try-catch-get-by-val-cloned-arguments 15.1797+-1.9949 ? 15.2635+-1.4365 ? try-catch-get-by-val-direct-arguments 6.5568+-0.0999 ? 6.6866+-0.2362 ? might be 1.0198x slower try-catch-get-by-val-scoped-arguments 7.7468+-0.3196 ? 7.9210+-0.3922 ? might be 1.0225x slower typed-array-get-set-by-val-profiling 32.6052+-0.7092 ? 32.6820+-0.8275 ? undefined-property-access 343.4782+-9.4816 ? 343.6361+-3.3868 ? undefined-test 3.1134+-0.2208 ? 3.2772+-0.2469 ? might be 1.0526x slower unprofiled-licm 23.1893+-1.1068 ? 23.4959+-1.2463 ? might be 1.0132x slower varargs-call 14.8244+-0.9459 14.7536+-0.3243 varargs-construct-inline 27.9832+-0.9914 27.7031+-0.6290 might be 1.0101x faster varargs-construct 23.1576+-0.5115 ? 23.1971+-0.9232 ? varargs-inline 9.8072+-0.9645 9.3164+-0.1153 might be 1.0527x faster varargs-strict-mode 10.3083+-0.3688 ? 10.7916+-1.2201 ? might be 1.0469x slower varargs 10.6984+-1.2572 10.1592+-0.0347 might be 1.0531x faster weird-inlining-const-prop 2.5841+-0.3873 2.3782+-0.2886 might be 1.0866x faster <geometric> 8.6544+-0.0245 8.6034+-0.0309 might be 1.0059x faster TipOfTree BoolIntSpec AsmBench: bigfib.cpp 496.7343+-3.1181 ? 496.9650+-3.0324 ? cray.c 427.1527+-2.1749 ? 473.6928+-117.4410 ? might be 1.1090x slower dry.c 482.8933+-8.8216 482.1009+-8.6071 FloatMM.c 726.4123+-3.2011 725.4895+-4.3223 gcc-loops.cpp 4263.6835+-12.9935 ? 4266.1854+-5.6214 ? n-body.c 976.0164+-2.6588 ? 977.4551+-4.2989 ? Quicksort.c 421.9954+-2.0057 418.1124+-4.0578 stepanov_container.cpp 3610.3476+-14.0560 ? 3638.6242+-76.9145 ? Towers.c 261.7372+-4.5492 261.0118+-1.7728 <geometric> 792.6210+-2.1695 ? 799.8875+-21.3401 ? might be 1.0092x slower TipOfTree BoolIntSpec CompressionBench: huffman 365.1720+-8.5211 355.2417+-3.5626 might be 1.0280x faster arithmetic-simple 364.1168+-2.4099 ? 364.5175+-2.1426 ? arithmetic-precise 292.9322+-3.8845 ? 293.0443+-2.5764 ? arithmetic-complex-precise 301.0099+-3.0825 ? 326.3698+-55.3951 ? might be 1.0842x slower arithmetic-precise-order-0 386.4899+-4.9382 379.8209+-2.6974 might be 1.0176x faster arithmetic-precise-order-1 327.3361+-3.2580 ? 328.7635+-2.7902 ? arithmetic-precise-order-2 362.9375+-5.3518 ? 365.0418+-9.0243 ? arithmetic-simple-order-1 421.2007+-2.3696 ? 424.0184+-2.9166 ? arithmetic-simple-order-2 465.5557+-6.4076 463.4430+-4.0945 lz-string 334.5470+-14.0652 334.3606+-6.0920 <geometric> 358.7152+-2.2659 ? 360.1956+-5.6710 ? might be 1.0041x slower TipOfTree BoolIntSpec Geomean of preferred means: <scaled-result> 61.6525+-0.1809 ? 61.7453+-0.5334 ? might be 1.0015x slower Created attachment 253361 [details]
the patch
Landed in http://trac.webkit.org/changeset/184542 |