| Summary: | [JSC] When entering a CheckTierUp without OSREntry, force the CheckTierUp for the outer loops with OSR Entry | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Benjamin Poulain <benjamin> | ||||||
| Component: | New Bugs | Assignee: | Benjamin Poulain <benjamin> | ||||||
| Status: | RESOLVED FIXED | ||||||||
| Severity: | Normal | CC: | fpizlo, ggaren | ||||||
| Priority: | P2 | ||||||||
| Version: | 528+ (Nightly build) | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| Attachments: |
|
||||||||
|
Description
Benjamin Poulain
2015-05-15 22:38:25 PDT
Created attachment 253268 [details]
Patch
Conf#1 Conf#2
SunSpider:
3d-cube 7.4096+-0.4321 7.2295+-0.1111 might be 1.0249x faster
3d-morph 7.8741+-0.1753 ? 7.9550+-0.3005 ? might be 1.0103x slower
3d-raytrace 8.8748+-0.2838 8.7518+-0.2634 might be 1.0141x faster
access-binary-trees 3.0294+-0.4368 ? 3.1710+-0.2458 ? might be 1.0468x slower
access-fannkuch 8.3342+-0.1834 ? 8.3436+-0.2267 ?
access-nbody 4.0822+-0.0964 ? 4.1282+-0.1061 ? might be 1.0113x slower
access-nsieve 4.5242+-0.2813 4.3885+-0.1269 might be 1.0309x faster
bitops-3bit-bits-in-byte 1.9634+-0.1456 1.8323+-0.1213 might be 1.0716x faster
bitops-bits-in-byte 5.5760+-0.0646 5.5617+-0.0638
bitops-bitwise-and 2.6872+-0.3286 2.5275+-0.4685 might be 1.0632x faster
bitops-nsieve-bits 4.1599+-0.1240 ? 4.2923+-0.1247 ? might be 1.0318x slower
controlflow-recursive 2.9416+-0.0529 2.8656+-0.1007 might be 1.0265x faster
crypto-aes 6.0355+-0.3085 6.0340+-0.2578
crypto-md5 3.6725+-0.1909 ? 3.7355+-0.2876 ? might be 1.0171x slower
crypto-sha1 3.3675+-0.1658 3.2496+-0.1339 might be 1.0363x faster
date-format-tofte 12.3451+-0.4289 ? 12.3464+-0.7354 ?
date-format-xparb 7.3520+-0.1714 ? 7.7325+-0.5321 ? might be 1.0518x slower
math-cordic 4.2152+-0.0703 ? 4.2251+-0.0392 ?
math-partial-sums 9.2520+-0.2259 9.0646+-0.1921 might be 1.0207x faster
math-spectral-norm 2.9468+-0.1743 2.9208+-0.1529
regexp-dna 9.4365+-0.4021 9.4285+-0.6929
string-base64 6.1243+-0.3377 ? 6.1534+-0.2686 ?
string-fasta 9.1610+-0.3489 ? 9.2357+-0.6859 ?
string-tagcloud 12.5499+-0.1709 ? 13.0637+-0.5248 ? might be 1.0409x slower
string-unpack-code 26.9385+-1.0011 ? 28.3401+-2.4999 ? might be 1.0520x slower
string-validate-input 6.7728+-0.2807 6.7043+-0.2554 might be 1.0102x faster
<arithmetic> 6.9856+-0.0279 ? 7.0493+-0.1514 ? might be 1.0091x slower
Conf#1 Conf#2
LongSpider:
3d-cube 1268.0212+-7.4885 ? 1272.5211+-21.0230 ?
3d-morph 1873.6866+-2.3872 1872.7179+-0.3717
3d-raytrace 1044.4565+-6.7884 1040.5856+-4.4081
access-binary-trees 1380.8423+-9.5336 1377.9116+-2.5945
access-fannkuch 443.9774+-25.1541 ? 456.6666+-33.7031 ? might be 1.0286x slower
access-nbody 1038.7339+-1.0117 1038.0443+-1.3889
access-nsieve 675.2741+-9.5097 673.0815+-8.2942
bitops-3bit-bits-in-byte 50.4523+-0.3199 ? 51.2123+-1.0412 ? might be 1.0151x slower
bitops-bits-in-byte 342.6328+-4.6170 335.3754+-12.7133 might be 1.0216x faster
bitops-nsieve-bits 627.5229+-3.7500 ? 629.0696+-5.6238 ?
controlflow-recursive 704.6216+-1.7479 ? 711.0287+-5.2002 ?
crypto-aes 934.9258+-4.7238 932.8550+-11.5641
crypto-md5 679.8302+-7.2845 678.2703+-7.9047
crypto-sha1 915.9385+-2.7019 ? 916.5547+-5.3382 ?
date-format-tofte 986.4698+-25.6638 970.1834+-29.2711 might be 1.0168x faster
date-format-xparb 1006.0831+-32.7056 1005.1788+-17.6326
math-cordic 672.9966+-1.3803 ? 673.1827+-2.7542 ?
math-partial-sums 1063.6277+-2.4464 ? 1066.1705+-0.4335 ?
math-spectral-norm 1073.1489+-1.2558 ? 1074.0620+-2.4636 ?
string-base64 485.8058+-2.1626 ? 490.2803+-5.8771 ?
string-fasta 597.7646+-2.3193 ! 610.3297+-7.1476 ! definitely 1.0210x slower
string-tagcloud 276.0377+-2.6581 273.9587+-2.5604
<geometric> 690.5534+-2.9513 ? 691.5118+-4.7578 ? might be 1.0014x slower
Conf#1 Conf#2
V8Spider:
crypto 73.0366+-0.7141 72.9620+-1.1089
deltablue 89.8962+-1.8999 ? 91.3795+-3.9843 ? might be 1.0165x slower
earley-boyer 62.6042+-0.6684 ? 62.8981+-0.7167 ?
raytrace 41.1804+-0.6308 40.4802+-2.7896 might be 1.0173x faster
regexp 110.2186+-0.4657 ? 112.0044+-1.5653 ? might be 1.0162x slower
richards 101.2618+-7.0370 100.6540+-3.6778
splay 52.3573+-3.2217 50.0626+-5.0468 might be 1.0458x faster
<geometric> 71.8442+-1.1007 71.5029+-0.6859 might be 1.0048x faster
Conf#1 Conf#2
Octane:
encrypt 0.30776+-0.00040 ? 0.31168+-0.01168 ? might be 1.0127x slower
decrypt 5.68525+-0.08538 5.65907+-0.00341
deltablue x2 0.26863+-0.00917 0.26766+-0.00912
earley 0.64525+-0.00123 0.64506+-0.00309
boyer 10.44943+-0.03030 10.41606+-0.07009
navier-stokes x2 6.39014+-0.01320 6.38707+-0.00863
raytrace x2 1.73498+-0.07933 ? 1.74529+-0.12279 ?
richards x2 0.16801+-0.00494 0.16639+-0.00440
splay x2 0.54389+-0.00704 ? 0.54517+-0.00430 ?
regexp x2 42.34250+-0.33029 ? 42.64431+-0.40393 ?
pdfjs x2 57.93497+-0.13332 57.93039+-0.20377
mandreel x2 69.54558+-0.63641 ? 69.64517+-0.64704 ?
gbemu x2 59.73309+-0.83850 ? 59.76650+-1.21648 ?
closure 0.75760+-0.00357 ? 0.75937+-0.00498 ?
jquery 9.45755+-0.02425 9.43707+-0.05357
box2d x2 17.45292+-0.16513 17.38255+-0.07527
zlib x2 546.97654+-11.14701 534.28184+-43.11547 might be 1.0238x faster
typescript x2 1079.12885+-30.22092 ? 1082.95648+-27.75814 ?
<geometric> 9.14683+-0.03390 9.13502+-0.09445 might be 1.0013x faster
Conf#1 Conf#2
Kraken:
ai-astar 482.243+-12.438 ^ 346.427+-1.074 ^ definitely 1.3920x faster
audio-beat-detection 147.332+-1.911 ? 147.907+-2.737 ?
audio-dft 143.395+-4.087 ? 143.926+-3.885 ?
audio-fft 116.386+-7.577 111.155+-0.859 might be 1.0471x faster
audio-oscillator 97.463+-1.043 97.060+-0.500
imaging-darkroom 140.253+-2.540 139.450+-0.320
imaging-desaturate 94.622+-0.433 94.419+-0.361
imaging-gaussian-blur 147.111+-0.734 147.086+-0.712
json-parse-financial 65.643+-1.555 ? 66.186+-0.651 ?
json-stringify-tinderbox 43.159+-0.039 ? 43.358+-0.275 ?
stanford-crypto-aes 81.284+-0.741 ? 82.970+-1.679 ? might be 1.0207x slower
stanford-crypto-ccm 70.367+-4.351 68.662+-2.061 might be 1.0248x faster
stanford-crypto-pbkdf2 160.158+-4.868 158.283+-1.684 might be 1.0118x faster
stanford-crypto-sha256-iterative 63.869+-0.744 63.549+-0.280
<arithmetic> 132.378+-0.679 ^ 122.174+-0.180 ^ definitely 1.0835x faster
Conf#1 Conf#2
JSRegress:
abs-boolean 3.7422+-0.1309 3.7372+-0.2595
adapt-to-double-divide 17.8514+-0.5351 ? 18.0812+-0.4517 ? might be 1.0129x slower
aliased-arguments-getbyval 1.6255+-0.3316 ? 1.7136+-0.2224 ? might be 1.0542x slower
allocate-big-object 3.9202+-0.3838 3.4868+-0.1403 might be 1.1243x faster
arguments-named-and-reflective 13.7587+-0.3791 13.7529+-0.3428
arguments-out-of-bounds 17.9221+-0.2008 ? 18.1804+-0.2191 ? might be 1.0144x slower
arguments-strict-mode 12.1758+-0.8507 ? 12.4395+-0.2778 ? might be 1.0217x slower
arguments 10.6910+-0.4041 ? 10.8334+-0.3925 ? might be 1.0133x slower
arity-mismatch-inlining 1.1241+-0.0747 ? 1.1693+-0.1470 ? might be 1.0402x slower
array-access-polymorphic-structure 9.2833+-0.2092 9.2592+-0.1446
array-nonarray-polymorhpic-access 47.8260+-4.0733 44.8722+-1.5713 might be 1.0658x faster
array-prototype-every 118.2007+-3.7282 118.0327+-6.1622
array-prototype-forEach 115.1426+-2.7295 114.4564+-3.7227
array-prototype-map 129.4517+-5.0508 ? 130.3257+-3.9208 ?
array-prototype-some 117.3803+-3.3255 116.2163+-4.0940 might be 1.0100x faster
array-splice-contiguous 56.9510+-1.1477 ? 58.2750+-2.1221 ? might be 1.0232x slower
array-with-double-add 5.5500+-0.0843 5.5248+-0.2637
array-with-double-increment 4.1963+-0.1133 ? 4.1990+-0.0825 ?
array-with-double-mul-add 7.7622+-0.1199 ? 8.1044+-0.3582 ? might be 1.0441x slower
array-with-double-sum 4.3704+-0.2163 ? 4.4834+-0.2341 ? might be 1.0259x slower
array-with-int32-add-sub 9.4347+-0.4075 ? 9.6816+-0.1991 ? might be 1.0262x slower
array-with-int32-or-double-sum 4.4847+-0.0707 4.4403+-0.1444 might be 1.0100x faster
ArrayBuffer-DataView-alloc-large-long-lived
46.4658+-0.8514 ? 47.0073+-2.4632 ? might be 1.0117x slower
ArrayBuffer-DataView-alloc-long-lived 18.6667+-0.6113 18.5284+-0.2182
ArrayBuffer-Int32Array-byteOffset 5.2388+-0.1988 5.2250+-0.2455
ArrayBuffer-Int8Array-alloc-large-long-lived
48.7741+-1.2937 ? 50.0892+-1.7502 ? might be 1.0270x slower
ArrayBuffer-Int8Array-alloc-long-lived-buffer
30.5464+-0.6689 ? 30.8710+-0.5036 ? might be 1.0106x slower
ArrayBuffer-Int8Array-alloc-long-lived 17.7871+-0.2103 ? 18.6082+-2.9255 ? might be 1.0462x slower
ArrayBuffer-Int8Array-alloc 14.8199+-0.2183 ? 14.8277+-0.6256 ?
asmjs_bool_bug 8.5380+-0.1052 8.4977+-0.1466
assign-custom-setter-polymorphic 4.2233+-0.0328 ? 4.4238+-0.2830 ? might be 1.0475x slower
assign-custom-setter 5.7774+-0.2053 5.6968+-0.1148 might be 1.0142x faster
basic-set 11.7647+-0.7079 11.3712+-0.7750 might be 1.0346x faster
big-int-mul 6.0403+-0.6120 5.8502+-0.0879 might be 1.0325x faster
boolean-test 4.2919+-0.0918 4.1660+-0.1545 might be 1.0302x faster
branch-fold 4.7460+-0.0799 ? 4.7581+-0.1146 ?
branch-on-string-as-boolean 23.2715+-1.0278 22.9630+-0.5241 might be 1.0134x faster
by-val-generic 10.5383+-0.1576 10.4403+-0.1065
call-spread-apply 38.2026+-1.6316 ? 38.3565+-1.9117 ?
call-spread-call 31.6150+-0.6764 ? 32.2588+-2.8897 ? might be 1.0204x slower
captured-assignments 0.6319+-0.1442 0.5405+-0.0113 might be 1.1692x faster
cast-int-to-double 8.1635+-0.2214 8.1583+-0.4559
cell-argument 9.8698+-0.4333 9.6938+-0.4508 might be 1.0182x faster
cfg-simplify 3.7433+-0.1199 3.7227+-0.1917
chain-getter-access 11.2462+-0.3212 ? 11.4217+-0.3413 ? might be 1.0156x slower
cmpeq-obj-to-obj-other 12.1963+-0.2526 ? 12.2415+-0.6957 ?
constant-test 7.7679+-0.4227 7.7180+-0.1767
create-lots-of-functions 16.5130+-0.2008 ? 16.8088+-0.6934 ? might be 1.0179x slower
DataView-custom-properties 54.4031+-5.0640 53.6191+-2.0809 might be 1.0146x faster
deconstructing-parameters-overridden-by-function
0.6790+-0.1700 ? 0.7104+-0.1404 ? might be 1.0463x slower
delay-tear-off-arguments-strictmode 18.7840+-0.4651 18.6525+-0.5725
deltablue-varargs 267.0200+-5.7302 266.0157+-1.7043
destructuring-arguments 23.0815+-0.4349 22.8698+-0.3055
destructuring-swap 7.7483+-0.0567 ? 7.8548+-0.1780 ? might be 1.0137x slower
direct-arguments-getbyval 1.6967+-0.2582 ? 1.7043+-0.2095 ?
div-boolean-double 5.5460+-0.1491 5.4739+-0.3141 might be 1.0132x faster
div-boolean 9.7258+-0.1758 ? 9.8068+-0.0968 ?
double-get-by-val-out-of-bounds 5.9543+-0.2852 5.9047+-0.1158
double-pollution-getbyval 9.6517+-0.2926 9.6313+-0.2419
double-pollution-putbyoffset 5.7720+-0.2998 5.6910+-0.3937 might be 1.0142x faster
double-to-int32-typed-array-no-inline 2.9440+-0.1380 2.8777+-0.0815 might be 1.0230x faster
double-to-int32-typed-array 2.5878+-0.2392 2.5701+-0.2110
double-to-uint32-typed-array-no-inline 2.9845+-0.2631 ? 3.0284+-0.2026 ? might be 1.0147x slower
double-to-uint32-typed-array 2.6552+-0.1209 ? 2.6928+-0.1681 ? might be 1.0142x slower
elidable-new-object-dag 55.6988+-1.5605 55.5293+-1.1679
elidable-new-object-roflcopter 57.3250+-1.1781 ? 57.4745+-1.4374 ?
elidable-new-object-then-call 52.1206+-0.8916 ? 52.9622+-3.3101 ? might be 1.0161x slower
elidable-new-object-tree 63.1033+-1.2722 ? 63.8928+-1.7384 ? might be 1.0125x slower
empty-string-plus-int 7.4193+-0.3821 ? 7.4338+-0.3608 ?
emscripten-cube2hash 44.5948+-0.6836 ? 45.1779+-1.8574 ? might be 1.0131x slower
exit-length-on-plain-object 18.4332+-0.2368 ? 19.5961+-1.0439 ? might be 1.0631x slower
external-arguments-getbyval 1.6359+-0.1753 ? 1.7571+-0.1755 ? might be 1.0741x slower
external-arguments-putbyval 3.2233+-0.1448 ? 3.3232+-0.1647 ? might be 1.0310x slower
fixed-typed-array-storage-var-index 1.5100+-0.1541 ? 1.5546+-0.0161 ? might be 1.0295x slower
fixed-typed-array-storage 1.2036+-0.1331 1.1685+-0.1303 might be 1.0300x faster
Float32Array-matrix-mult 6.5128+-0.5359 5.9775+-0.1383 might be 1.0895x faster
Float32Array-to-Float64Array-set 71.4758+-2.9792 ? 72.0480+-0.3647 ?
Float64Array-alloc-long-lived 90.7786+-0.4999 ? 91.2631+-0.1590 ?
Float64Array-to-Int16Array-set 97.9057+-2.8249 ^ 92.1890+-1.0313 ^ definitely 1.0620x faster
fold-double-to-int 19.2197+-0.1867 ? 19.2540+-0.7911 ?
fold-get-by-id-to-multi-get-by-offset-rare-int
11.0966+-0.4366 ? 11.1602+-0.9253 ?
fold-get-by-id-to-multi-get-by-offset 9.0608+-0.3661 8.9490+-0.3568 might be 1.0125x faster
fold-multi-get-by-offset-to-get-by-offset
7.8362+-0.9115 ? 8.0537+-1.0908 ? might be 1.0278x slower
fold-multi-get-by-offset-to-poly-get-by-offset
8.4352+-0.8557 ? 8.5040+-0.1276 ?
fold-multi-put-by-offset-to-poly-put-by-offset
7.7589+-0.7450 7.7160+-0.6720
fold-multi-put-by-offset-to-put-by-offset
6.6730+-0.2324 6.2821+-0.8816 might be 1.0622x faster
fold-multi-put-by-offset-to-replace-or-transition-put-by-offset
13.2521+-1.1814 13.0448+-0.5962 might be 1.0159x faster
fold-put-by-id-to-multi-put-by-offset 8.9363+-0.7300 ? 8.9927+-0.7870 ?
fold-put-structure 6.3957+-0.6712 6.2534+-0.6633 might be 1.0228x faster
for-of-iterate-array-entries 6.1273+-0.1584 6.1070+-0.3324
for-of-iterate-array-keys 4.8741+-0.1127 ? 5.0315+-0.2891 ? might be 1.0323x slower
for-of-iterate-array-values 4.6542+-0.1177 ? 5.0082+-0.4648 ? might be 1.0760x slower
fround 23.3628+-0.2423 22.5988+-0.6350 might be 1.0338x faster
ftl-library-inlining-dataview 89.9639+-2.3532 89.7096+-1.4120
ftl-library-inlining 83.9793+-0.3680 ? 84.2917+-0.4779 ?
function-dot-apply 2.7266+-0.2017 2.7253+-0.1046
function-test 4.3962+-0.0109 4.3405+-0.1609 might be 1.0128x faster
function-with-eval 134.9413+-0.4916 ? 135.8190+-2.0134 ?
gcse-poly-get-less-obvious 24.7675+-0.2478 ? 24.9218+-0.5324 ?
gcse-poly-get 24.8823+-0.5430 24.5759+-0.1013 might be 1.0125x faster
gcse 6.5655+-0.0387 6.5611+-0.1232
get-by-id-bimorphic-check-structure-elimination-simple
3.2735+-0.0807 3.1830+-0.0773 might be 1.0284x faster
get-by-id-bimorphic-check-structure-elimination
8.3607+-0.1596 ? 8.6699+-0.9563 ? might be 1.0370x slower
get-by-id-chain-from-try-block 11.3790+-0.1820 11.3723+-0.2485
get-by-id-check-structure-elimination 7.5605+-0.1263 7.5060+-0.2236
get-by-id-proto-or-self 22.2900+-0.2937 ? 25.0308+-4.0392 ? might be 1.1230x slower
get-by-id-quadmorphic-check-structure-elimination-simple
4.1202+-0.4394 3.9293+-0.1963 might be 1.0486x faster
get-by-id-self-or-proto 23.6880+-3.4584 ? 25.3682+-3.8392 ? might be 1.0709x slower
get-by-val-out-of-bounds 5.9632+-0.3026 5.8264+-0.2601 might be 1.0235x faster
get_callee_monomorphic 3.7885+-0.3248 ? 3.8502+-0.1745 ? might be 1.0163x slower
get_callee_polymorphic 4.6920+-0.2669 ? 4.7850+-0.2264 ? might be 1.0198x slower
getter-no-activation 5.8248+-0.1261 5.7660+-0.1701 might be 1.0102x faster
getter-richards 133.0975+-7.6090 ? 133.5500+-6.1166 ?
getter 7.2609+-0.1388 7.1865+-0.0947 might be 1.0104x faster
global-var-const-infer-fire-from-opt 1.2928+-0.0951 1.2153+-0.1549 might be 1.0638x faster
global-var-const-infer 1.1158+-0.2873 ? 1.2031+-0.1981 ? might be 1.0782x slower
HashMap-put-get-iterate-keys 33.2063+-0.2256 ? 33.4995+-0.9418 ?
HashMap-put-get-iterate 33.3687+-0.8784 32.7208+-0.5542 might be 1.0198x faster
HashMap-string-put-get-iterate 35.6882+-0.6607 35.0953+-1.8071 might be 1.0169x faster
hoist-make-rope 13.8912+-1.2967 13.7521+-1.0620 might be 1.0101x faster
hoist-poly-check-structure-effectful-loop
7.0490+-0.1389 6.9832+-0.1889
hoist-poly-check-structure 4.7887+-0.1190 ? 4.8152+-0.1496 ?
imul-double-only 10.2176+-0.4419 9.8351+-1.3229 might be 1.0389x faster
imul-int-only 11.9084+-0.7895 ? 12.4055+-0.8495 ? might be 1.0417x slower
imul-mixed 10.2748+-1.1720 9.5801+-0.2461 might be 1.0725x faster
in-four-cases 25.5345+-0.2581 ! 26.2859+-0.4530 ! definitely 1.0294x slower
in-one-case-false 12.9228+-0.1448 ! 13.5966+-0.1973 ! definitely 1.0521x slower
in-one-case-true 12.8130+-0.2738 ! 13.6617+-0.2394 ! definitely 1.0662x slower
in-two-cases 13.1282+-0.0212 ! 13.9134+-0.1818 ! definitely 1.0598x slower
indexed-properties-in-objects 3.8068+-0.1035 ? 3.8540+-0.2093 ? might be 1.0124x slower
infer-closure-const-then-mov-no-inline 4.7050+-0.0896 4.6821+-0.0700
infer-closure-const-then-mov 25.1077+-1.0551 24.7088+-0.5810 might be 1.0161x faster
infer-closure-const-then-put-to-scope-no-inline
14.4610+-0.1821 ? 14.6712+-0.5008 ? might be 1.0145x slower
infer-closure-const-then-put-to-scope 27.7517+-0.2632 ? 27.9768+-0.5190 ?
infer-closure-const-then-reenter-no-inline
61.2000+-0.2745 60.9952+-0.5074
infer-closure-const-then-reenter 29.2050+-0.3979 ? 29.6309+-0.5954 ? might be 1.0146x slower
infer-constant-global-property 4.6965+-0.1833 ? 4.7518+-0.1707 ? might be 1.0118x slower
infer-constant-property 3.3015+-0.1579 3.2905+-0.0849
infer-one-time-closure-ten-vars 14.7155+-0.1768 14.5817+-0.2534
infer-one-time-closure-two-vars 14.0554+-0.6466 13.9701+-0.3921
infer-one-time-closure 14.1082+-0.4383 14.0326+-0.7710
infer-one-time-deep-closure 24.5408+-0.5201 24.5278+-0.1693
inline-arguments-access 6.0930+-0.3684 ? 6.1346+-0.1363 ?
inline-arguments-aliased-access 6.1035+-0.1645 5.9907+-0.2252 might be 1.0188x faster
inline-arguments-local-escape 6.0782+-0.1097 ? 6.1248+-0.0879 ?
inline-get-scoped-var 5.6235+-0.0429 ? 5.6861+-0.1083 ? might be 1.0111x slower
inlined-put-by-id-transition 15.5560+-1.2614 ? 15.6841+-0.9635 ?
int-or-other-abs-then-get-by-val 6.6573+-0.1095 6.6501+-0.1250
int-or-other-abs-zero-then-get-by-val 26.8134+-0.2655 ! 28.2209+-0.1543 ! definitely 1.0525x slower
int-or-other-add-then-get-by-val 5.5606+-0.0868 5.5461+-0.0774
int-or-other-add 7.9968+-0.2689 7.8940+-0.1235 might be 1.0130x faster
int-or-other-div-then-get-by-val 5.1768+-0.0970 ? 5.1853+-0.1171 ?
int-or-other-max-then-get-by-val 5.1223+-0.2081 5.0160+-0.2154 might be 1.0212x faster
int-or-other-min-then-get-by-val 4.9898+-0.1493 ? 5.0132+-0.1788 ?
int-or-other-mod-then-get-by-val 5.0004+-0.1130 ? 5.0016+-0.0498 ?
int-or-other-mul-then-get-by-val 4.9682+-0.1808 4.8970+-0.1411 might be 1.0145x faster
int-or-other-neg-then-get-by-val 6.1400+-0.0995 ? 6.1612+-0.1098 ?
int-or-other-neg-zero-then-get-by-val 28.3271+-0.4434 28.2800+-0.1824
int-or-other-sub-then-get-by-val 6.0319+-0.2696 6.0120+-0.1034
int-or-other-sub 4.3267+-0.1167 4.2486+-0.2913 might be 1.0184x faster
int-overflow-local 5.6375+-0.1341 ? 5.7073+-0.1554 ? might be 1.0124x slower
Int16Array-alloc-long-lived 63.4147+-1.1081 62.7795+-0.5083 might be 1.0101x faster
Int16Array-bubble-sort-with-byteLength 36.8495+-0.1125 ? 37.4127+-0.6394 ? might be 1.0153x slower
Int16Array-bubble-sort 37.0640+-0.4500 36.3057+-1.3948 might be 1.0209x faster
Int16Array-load-int-mul 2.0525+-0.0623 1.9800+-0.1198 might be 1.0366x faster
Int16Array-to-Int32Array-set 74.3745+-3.5218 ^ 69.4207+-1.3354 ^ definitely 1.0714x faster
Int32Array-alloc-large 32.5974+-0.6722 ? 32.7523+-0.8570 ?
Int32Array-alloc-long-lived 70.4001+-1.0120 70.0493+-0.5996
Int32Array-alloc 4.6061+-0.3099 4.4865+-0.0931 might be 1.0267x faster
Int32Array-Int8Array-view-alloc 9.5339+-0.3081 ? 10.0070+-0.9643 ? might be 1.0496x slower
int52-spill 7.9623+-0.2949 ? 8.1422+-0.7959 ? might be 1.0226x slower
Int8Array-alloc-long-lived 56.0406+-0.5807 ? 56.3823+-0.8220 ?
Int8Array-load-with-byteLength 4.8468+-0.3971 4.7596+-0.2377 might be 1.0183x faster
Int8Array-load 4.6346+-0.1968 ? 4.8000+-0.1150 ? might be 1.0357x slower
integer-divide 13.2360+-0.1768 ? 13.3300+-0.3936 ?
integer-modulo 2.8152+-0.2308 2.7271+-0.2039 might be 1.0323x faster
is-boolean-fold-tricky 5.7575+-0.1227 ? 5.7686+-0.2149 ?
is-boolean-fold 3.9764+-0.1518 ? 3.9866+-0.0952 ?
is-function-fold-tricky-internal-function
15.6998+-2.0659 15.1478+-1.5582 might be 1.0364x faster
is-function-fold-tricky 5.9380+-0.0320 ? 5.9655+-0.1397 ?
is-function-fold 4.0978+-0.1713 3.9910+-0.0416 might be 1.0268x faster
is-number-fold-tricky 5.7118+-0.1573 ? 5.7922+-0.1266 ? might be 1.0141x slower
is-number-fold 4.0186+-0.0953 3.9717+-0.0778 might be 1.0118x faster
is-object-or-null-fold-functions 4.0694+-0.0419 ? 4.0698+-0.0623 ?
is-object-or-null-fold-less-tricky 5.8361+-0.1197 5.7689+-0.2331 might be 1.0117x faster
is-object-or-null-fold-tricky 7.5372+-0.2035 ? 7.7497+-0.2131 ? might be 1.0282x slower
is-object-or-null-fold 4.0483+-0.0507 ? 4.1313+-0.0834 ? might be 1.0205x slower
is-object-or-null-trickier-function 5.9559+-0.1492 ? 5.9565+-0.1156 ?
is-object-or-null-trickier-internal-function
14.7305+-0.1576 ? 15.4662+-1.2758 ? might be 1.0499x slower
is-object-or-null-tricky-function 5.8967+-0.1606 ? 5.9236+-0.1672 ?
is-object-or-null-tricky-internal-function
11.5053+-1.0166 ? 11.5720+-1.0575 ?
is-string-fold-tricky 5.6730+-0.0965 ? 5.7296+-0.1585 ?
is-string-fold 3.9423+-0.2592 ? 3.9427+-0.1257 ?
is-undefined-fold-tricky 4.5008+-0.1506 ? 4.5837+-0.4064 ? might be 1.0184x slower
is-undefined-fold 3.9810+-0.0829 3.9529+-0.0937
large-int-captured 6.7298+-0.1422 ? 6.8820+-0.2491 ? might be 1.0226x slower
large-int-neg 20.5619+-0.2371 ? 20.6318+-0.5967 ?
large-int 18.5438+-0.2682 ? 18.8806+-0.8673 ? might be 1.0182x slower
logical-not 6.1951+-0.4395 ? 6.3339+-0.4968 ? might be 1.0224x slower
lots-of-fields 19.4164+-0.2646 ? 19.4471+-0.2740 ?
make-indexed-storage 4.3958+-0.5372 ? 4.4141+-0.3227 ?
make-rope-cse 6.5758+-0.0158 ? 6.7048+-0.2198 ? might be 1.0196x slower
marsaglia-larger-ints 55.0110+-0.6776 54.9468+-1.3151
marsaglia-osr-entry 28.0146+-0.7272 ? 28.1848+-0.8076 ?
max-boolean 3.3473+-0.0576 3.3425+-0.1593
method-on-number 23.4218+-1.2537 ? 23.5944+-0.5422 ?
min-boolean 3.1982+-0.1130 ? 3.4373+-0.3274 ? might be 1.0747x slower
minus-boolean-double 4.1424+-0.1714 ? 4.1877+-0.0877 ? might be 1.0109x slower
minus-boolean 3.3113+-0.0596 ? 3.3616+-0.1080 ? might be 1.0152x slower
misc-strict-eq 58.1064+-1.6370 56.8527+-0.4478 might be 1.0221x faster
mod-boolean-double 11.7592+-0.2157 11.6608+-0.3237
mod-boolean 8.6920+-0.1959 8.6310+-0.1772
mul-boolean-double 4.9365+-0.0513 4.8385+-0.1001 might be 1.0202x faster
mul-boolean 3.5311+-0.0250 ? 3.5454+-0.0440 ?
neg-boolean 4.3907+-0.1500 ? 4.4230+-0.0672 ?
negative-zero-divide 0.5255+-0.0785 0.5086+-0.1230 might be 1.0331x faster
negative-zero-modulo 0.5074+-0.1231 ? 0.5224+-0.0995 ? might be 1.0295x slower
negative-zero-negate 0.4507+-0.0806 ? 0.4703+-0.0948 ? might be 1.0435x slower
nested-function-parsing 58.5352+-0.5686 58.1280+-0.4787
new-array-buffer-dead 139.5070+-0.9305 ? 139.6418+-2.8406 ?
new-array-buffer-push 9.6666+-0.5001 9.6044+-0.3732
new-array-dead 23.4177+-2.5904 ? 23.8912+-0.5810 ? might be 1.0202x slower
new-array-push 5.5901+-0.2263 5.3682+-0.5245 might be 1.0413x faster
no-inline-constructor 162.6556+-1.5355 ? 162.8774+-0.9498 ?
number-test 4.2115+-0.1431 ? 4.2253+-0.0493 ?
object-closure-call 7.3397+-0.1310 ? 7.4064+-0.3349 ?
object-test 4.0927+-0.0871 ? 4.1530+-0.1922 ? might be 1.0147x slower
obvious-sink-pathology-taken 174.8243+-1.2241 174.0619+-2.5873
obvious-sink-pathology 158.1450+-3.6838 157.6970+-1.3447
obviously-elidable-new-object 46.2120+-3.7554 ? 48.3525+-5.4072 ? might be 1.0463x slower
plus-boolean-arith 3.2982+-0.0653 3.2845+-0.0638
plus-boolean-double 4.2627+-0.1664 4.2610+-0.1156
plus-boolean 3.2443+-0.0501 ? 3.2585+-0.1435 ?
poly-chain-access-different-prototypes-simple
3.9297+-0.1276 3.8149+-0.1958 might be 1.0301x faster
poly-chain-access-different-prototypes 3.1880+-0.2072 3.1694+-0.1231
poly-chain-access-simpler 3.9290+-0.1387 3.8187+-0.1223 might be 1.0289x faster
poly-chain-access 3.0140+-0.1677 ? 3.1200+-0.0470 ? might be 1.0352x slower
poly-stricteq 70.7733+-0.8841 69.7659+-0.1351 might be 1.0144x faster
polymorphic-array-call 1.6818+-0.2823 ? 1.8308+-0.2167 ? might be 1.0886x slower
polymorphic-get-by-id 4.1216+-0.1801 4.0978+-0.1457
polymorphic-put-by-id 41.1440+-4.5537 40.5253+-6.2879 might be 1.0153x faster
polymorphic-structure 17.6848+-0.3520 ? 17.7747+-0.2784 ?
polyvariant-monomorphic-get-by-id 11.4928+-0.4427 ? 11.5502+-0.2308 ?
proto-getter-access 11.3408+-0.2451 11.3258+-0.5227
put-by-id-replace-and-transition 12.5128+-0.6623 ? 12.5195+-0.4694 ?
put-by-id-slightly-polymorphic 3.4612+-0.0929 ? 3.5577+-0.1929 ? might be 1.0279x slower
put-by-id 18.7379+-0.7532 ? 18.8900+-0.9568 ?
put-by-val-direct 0.4618+-0.0290 ? 0.5286+-0.1181 ? might be 1.1446x slower
put-by-val-large-index-blank-indexing-type
8.6318+-0.2994 8.4048+-0.2384 might be 1.0270x faster
put-by-val-machine-int 3.7980+-0.1217 3.5347+-0.2219 might be 1.0745x faster
rare-osr-exit-on-local 18.4399+-0.6374 18.3370+-0.1489
register-pressure-from-osr 25.8647+-0.5141 25.7877+-0.5171
setter 6.5560+-0.1834 6.5023+-0.0163
simple-activation-demo 30.4695+-0.1573 ! 31.6783+-0.0762 ! definitely 1.0397x slower
simple-getter-access 15.3398+-1.1417 15.0986+-0.1525 might be 1.0160x faster
simple-poly-call-nested 10.0863+-0.1334 10.0298+-0.0603
simple-poly-call 1.6743+-0.0671 1.6603+-0.1446
sin-boolean 24.2331+-3.9202 23.4335+-3.6171 might be 1.0341x faster
singleton-scope 80.6254+-1.0473 79.7516+-0.2568 might be 1.0110x faster
sink-function 14.5565+-1.9012 ? 16.0663+-0.1805 ? might be 1.1037x slower
sinkable-new-object-dag 95.4863+-0.7490 94.7890+-1.2014
sinkable-new-object-taken 69.9092+-1.3012 ? 71.1263+-3.5533 ? might be 1.0174x slower
sinkable-new-object 52.8945+-2.1031 ? 53.2414+-0.9370 ?
slow-array-profile-convergence 4.3166+-0.1544 3.9872+-0.2096 might be 1.0826x faster
slow-convergence 3.7594+-0.2832 ? 3.7916+-0.3091 ?
sorting-benchmark 26.6241+-0.7246 26.5754+-1.3269
sparse-conditional 1.5567+-0.1452 1.5505+-0.1594
splice-to-remove 21.0100+-0.6248 20.9741+-0.5146
string-char-code-at 19.4006+-0.2942 19.3666+-0.2850
string-concat-object 3.2827+-0.1799 ? 3.3642+-0.4492 ? might be 1.0248x slower
string-concat-pair-object 3.2302+-0.3743 ? 3.2308+-0.3185 ?
string-concat-pair-simple 16.9865+-0.6083 ? 17.1617+-0.5504 ? might be 1.0103x slower
string-concat-simple 17.3638+-0.1267 ? 17.4813+-0.7031 ?
string-cons-repeat 11.2527+-0.0567 11.1714+-0.1243
string-cons-tower 10.4318+-0.2448 10.3754+-0.2403
string-equality 23.2003+-0.3611 23.0903+-0.3177
string-get-by-val-big-char 9.9117+-0.3041 ? 9.9705+-0.2427 ?
string-get-by-val-out-of-bounds-insane 5.0617+-0.1368 ? 5.0878+-0.3194 ?
string-get-by-val-out-of-bounds 6.8635+-0.1343 ? 6.8936+-0.2956 ?
string-get-by-val 4.7663+-0.0737 4.7451+-0.1451
string-hash 2.7797+-0.1378 2.7551+-0.1706
string-long-ident-equality 18.7140+-0.1365 18.4695+-0.1693 might be 1.0132x faster
string-out-of-bounds 17.4018+-0.3397 17.2255+-0.2664 might be 1.0102x faster
string-repeat-arith 40.3503+-1.1610 39.9767+-1.0706
string-sub 78.2010+-1.5364 ? 78.5092+-2.1882 ?
string-test 4.2333+-0.0837 ? 4.2359+-0.1632 ?
string-var-equality 44.4532+-0.2662 ? 44.5902+-0.7879 ?
structure-hoist-over-transitions 3.4788+-0.2393 ? 3.5037+-0.2511 ?
substring-concat-weird 54.5711+-0.2233 ? 55.0406+-0.7104 ?
substring-concat 58.2054+-0.4469 58.1079+-0.5902
substring 63.6298+-0.9288 63.5603+-0.8438
switch-char-constant 3.3008+-0.1359 ? 3.3098+-0.0680 ?
switch-char 7.6281+-0.0744 ! 8.3591+-0.1456 ! definitely 1.0958x slower
switch-constant 11.5192+-0.6054 ? 11.6098+-1.0892 ?
switch-string-basic-big-var 27.4593+-0.3257 ? 27.6035+-0.5384 ?
switch-string-basic-big 21.7273+-2.5610 21.1240+-1.8475 might be 1.0286x faster
switch-string-basic-var 27.5532+-1.0303 ? 27.8824+-0.5815 ? might be 1.0120x slower
switch-string-basic 17.4401+-2.6263 17.0593+-2.1942 might be 1.0223x faster
switch-string-big-length-tower-var 25.6187+-0.7664 ? 26.0302+-0.2806 ? might be 1.0161x slower
switch-string-length-tower-var 19.8433+-0.8386 ? 19.8738+-0.3357 ?
switch-string-length-tower 16.7722+-1.0658 16.3123+-0.5275 might be 1.0282x faster
switch-string-short 14.1661+-0.3177 13.9133+-0.0853 might be 1.0182x faster
switch 16.8407+-2.7005 16.0522+-2.5560 might be 1.0491x faster
tear-off-arguments-simple 4.4750+-0.3200 ? 4.5831+-0.1593 ? might be 1.0242x slower
tear-off-arguments 6.1550+-0.5346 ? 6.4944+-0.8541 ? might be 1.0552x slower
temporal-structure 14.9678+-0.1603 ? 15.2777+-0.3230 ? might be 1.0207x slower
to-int32-boolean 20.3646+-0.3574 ? 20.5148+-0.3857 ?
try-catch-get-by-val-cloned-arguments 19.9688+-1.4664 19.4621+-0.2802 might be 1.0260x faster
try-catch-get-by-val-direct-arguments 8.6019+-0.3546 ? 8.6063+-0.0982 ?
try-catch-get-by-val-scoped-arguments 10.2950+-0.4135 10.2313+-0.3078
typed-array-get-set-by-val-profiling 42.3372+-1.2574 ? 43.2767+-1.5860 ? might be 1.0222x slower
undefined-property-access 426.5948+-5.0233 426.5269+-4.0609
undefined-test 4.5036+-0.0177 ? 4.5191+-0.1668 ?
unprofiled-licm 27.1672+-0.8266 ? 27.2308+-0.8465 ?
varargs-call 17.7362+-0.5779 ? 17.8770+-0.0618 ?
varargs-construct-inline 28.7390+-0.1056 ! 30.2424+-0.3826 ! definitely 1.0523x slower
varargs-construct 42.9865+-0.4376 ? 43.3063+-0.8870 ?
varargs-inline 10.5728+-0.7141 10.4869+-0.4649
varargs-strict-mode 12.6675+-0.4226 ? 12.7802+-0.2999 ?
varargs 12.6412+-0.2668 ? 12.8602+-0.5870 ? might be 1.0173x slower
weird-inlining-const-prop 2.9622+-0.1815 2.9083+-0.1863 might be 1.0185x faster
<geometric> 10.8691+-0.0247 ? 10.8939+-0.0274 ? might be 1.0023x slower
Conf#1 Conf#2
AsmBench:
bigfib.cpp 667.1432+-2.5466 ? 667.7529+-2.7788 ?
cray.c 625.7172+-10.2970 624.9478+-4.3289
dry.c 654.0175+-0.7682 ? 654.3418+-2.3595 ?
FloatMM.c 954.7396+-1.2701 ? 954.8128+-1.3096 ?
gcc-loops.cpp 5863.3347+-11.1036 ? 5876.0807+-12.7564 ?
n-body.c 1669.2862+-6.4034 1668.1880+-2.0227
Quicksort.c 573.0015+-3.8759 571.3672+-9.8300
stepanov_container.cpp 4871.5667+-24.6510 ? 4893.3723+-25.7824 ?
Towers.c 383.1216+-4.4846 ^ 376.2726+-1.0400 ^ definitely 1.0182x faster
<geometric> 1117.9722+-2.9526 1116.1537+-1.9342 might be 1.0016x faster
Conf#1 Conf#2
CompressionBench:
huffman 498.4947+-3.3280 ? 498.8477+-1.3773 ?
arithmetic-simple 527.0795+-1.2821 ^ 463.0287+-1.6591 ^ definitely 1.1383x faster
arithmetic-precise 402.0682+-2.0220 ^ 388.2253+-3.2083 ^ definitely 1.0357x faster
arithmetic-complex-precise 400.0457+-3.2566 ? 407.3429+-18.8869 ? might be 1.0182x slower
arithmetic-precise-order-0 569.3853+-19.5877 ^ 484.9987+-9.0494 ^ definitely 1.1740x faster
arithmetic-precise-order-1 421.1037+-2.6749 420.8342+-1.1474
arithmetic-precise-order-2 470.9117+-4.1974 469.5288+-3.4937
arithmetic-simple-order-1 528.0690+-0.5676 527.9777+-1.7186
arithmetic-simple-order-2 583.0833+-3.3230 ? 583.5113+-2.4204 ?
lz-string 415.9227+-2.5952 413.7944+-5.0246
<geometric> 477.0937+-2.6340 ^ 462.3194+-2.4014 ^ definitely 1.0320x faster
Conf#1 Conf#2
Geomean of preferred means:
<scaled-result> 83.8033+-0.2157 ^ 82.6932+-0.1879 ^ definitely 1.0134x faster
From experiments I did today, it looks like we still have plenty of margin to be more aggressive on ai-astar. What do you think about triggering a FTLForOSREntry from the inner loop for the bytecode of the outer loop? Something else that would be nice is remove the useless compilations we do in FTL. We compile two FTL functions that we never use because they are inlined, and a full function that we don't use because it is only possible to OSREnter in this case. Created attachment 253269 [details]
Patch
Comment on attachment 253269 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=253269&action=review > Source/JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.cpp:132 > + HashSet<const NaturalLoop*> findLoopsContainingLoopHintWithoutOSREnter(const NaturalLoops& naturalLoops, FTL::CapabilityLevel level) Can we do this without a HashSet? Comment on attachment 253269 [details] Patch Clearing flags on attachment: 253269 Committed r184511: <http://trac.webkit.org/changeset/184511> All reviewed patches have been landed. Closing bug. Comment on attachment 253269 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=253269&action=review > Source/JavaScriptCore/ChangeLog:11 > + When we have a hot loop without OSR Entry inside a slower loop that support OSR Entry, > + we get the inside loop driving the tierUpCounter and we have very little chance of > + doing a CheckTierUp on the outer loop. In turn, this give almost no opportunity to tier > + up in the outer loop and OSR Enter there. Under what conditions does the FTL not support OSR entry? FTLCapabilities.cpp does not seem to use the CanCompile enum value. What's the condition in ai-astart that prohibits OSR entry? (In reply to comment #8) > Under what conditions does the FTL not support OSR entry? > FTLCapabilities.cpp does not seem to use the CanCompile enum value. > > What's the condition in ai-astart that prohibits OSR entry? We do not OSR Entry in code that was inlined. |