Bug 145092 - [JSC] When entering a CheckTierUp without OSREntry, force the CheckTierUp for the outer loops with OSR Entry
Summary: [JSC] When entering a CheckTierUp without OSREntry, force the CheckTierUp for...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Benjamin Poulain
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-15 22:38 PDT by Benjamin Poulain
Modified: 2015-05-18 22:07 PDT (History)
2 users (show)

See Also:


Attachments
Patch (19.02 KB, patch)
2015-05-15 23:06 PDT, Benjamin Poulain
no flags Details | Formatted Diff | Diff
Patch (19.04 KB, patch)
2015-05-15 23:16 PDT, Benjamin Poulain
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Poulain 2015-05-15 22:38:25 PDT
[JSC] When entering a CheckTierUp without OSREntry, force the CheckTierUp for the outer loops with OSR Entry
Comment 1 Benjamin Poulain 2015-05-15 23:06:18 PDT
Created attachment 253268 [details]
Patch
Comment 2 Benjamin Poulain 2015-05-15 23:07:05 PDT
                                                          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
Comment 3 Benjamin Poulain 2015-05-15 23:14:38 PDT
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.
Comment 4 Benjamin Poulain 2015-05-15 23:16:42 PDT
Created attachment 253269 [details]
Patch
Comment 5 Filip Pizlo 2015-05-18 13:07:12 PDT
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 6 Benjamin Poulain 2015-05-18 13:45:37 PDT
Comment on attachment 253269 [details]
Patch

Clearing flags on attachment: 253269

Committed r184511: <http://trac.webkit.org/changeset/184511>
Comment 7 Benjamin Poulain 2015-05-18 13:45:41 PDT
All reviewed patches have been landed.  Closing bug.
Comment 8 Geoffrey Garen 2015-05-18 14:23:09 PDT
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?
Comment 9 Benjamin Poulain 2015-05-18 22:07:17 PDT
(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.