<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>145033</bug_id>
          
          <creation_ts>2015-05-14 18:47:10 -0700</creation_ts>
          <short_desc>[JSC] Replace CheckTierUpInLoop by a simple loop counter increment</short_desc>
          <delta_ts>2015-05-15 18:03:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1094988</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-14 18:47:10 -0700</bug_when>
    <thetext>[JSC] Replace CheckTierUpInLoop by a simple loop counter increment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094990</commentid>
    <comment_count>1</comment_count>
      <attachid>253166</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-14 18:57:24 -0700</bug_when>
    <thetext>Created attachment 253166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094998</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-14 19:20:35 -0700</bug_when>
    <thetext>                                                          Conf#1                    Conf#2                                      
SunSpider:
   3d-cube                                            7.4707+-0.4057            7.4615+-0.3710        
   3d-morph                                           7.8777+-0.0660     ?      7.9604+-0.1467        ? might be 1.0105x slower
   3d-raytrace                                        8.6840+-0.1431     ?      8.8187+-0.2511        ? might be 1.0155x slower
   access-binary-trees                                2.9951+-0.1373            2.9417+-0.2488          might be 1.0182x faster
   access-fannkuch                                    8.3361+-0.3083     ?      8.4088+-0.2321        ?
   access-nbody                                       4.1312+-0.1774            4.1223+-0.2054        
   access-nsieve                                      4.5938+-0.3353     ?      4.6199+-0.2793        ?
   bitops-3bit-bits-in-byte                           1.9629+-0.1076            1.9415+-0.1058          might be 1.0110x faster
   bitops-bits-in-byte                                5.6274+-0.0605     ?      5.6606+-0.1273        ?
   bitops-bitwise-and                                 2.6995+-0.1815            2.6174+-0.2308          might be 1.0314x faster
   bitops-nsieve-bits                                 4.2758+-0.1182     ?      4.3358+-0.0522        ? might be 1.0140x slower
   controlflow-recursive                              2.9628+-0.1228            2.9005+-0.1873          might be 1.0215x faster
   crypto-aes                                         5.9450+-0.2088     ?      6.0028+-0.3464        ?
   crypto-md5                                         3.7909+-0.1596            3.6649+-0.1790          might be 1.0344x faster
   crypto-sha1                                        3.3301+-0.0992            3.2568+-0.1158          might be 1.0225x faster
   date-format-tofte                                 12.1987+-0.3280           12.1503+-0.3859        
   date-format-xparb                                  7.5950+-0.2782     ?      7.9877+-0.7983        ? might be 1.0517x slower
   math-cordic                                        4.2595+-0.0916     ?      4.2905+-0.1752        ?
   math-partial-sums                                  9.2545+-0.1239     ?      9.3163+-0.5185        ?
   math-spectral-norm                                 2.9158+-0.0423            2.8813+-0.1724          might be 1.0120x faster
   regexp-dna                                         9.7119+-0.4281     ?      9.7368+-0.2951        ?
   string-base64                                      6.3848+-0.3070            6.2654+-0.2394          might be 1.0191x faster
   string-fasta                                       9.2384+-0.3365            9.1397+-0.2983          might be 1.0108x faster
   string-tagcloud                                   12.7599+-0.4104           12.7151+-0.8563        
   string-unpack-code                                26.7627+-0.4047     ?     27.3229+-0.5700        ? might be 1.0209x slower
   string-validate-input                              6.9058+-0.2286            6.7432+-0.3538          might be 1.0241x faster

   &lt;arithmetic&gt;                                       7.0258+-0.0592     ?      7.0486+-0.0747        ? might be 1.0032x slower

                                                          Conf#1                    Conf#2                                      
LongSpider:
   3d-cube                                         1264.9675+-14.5417    ?   1270.1407+-11.5393       ?
   3d-morph                                        1874.7108+-8.3848     ?   1875.1567+-3.3507        ?
   3d-raytrace                                     1043.4266+-6.9934     ?   1047.0209+-13.2064       ?
   access-binary-trees                             1379.3623+-8.9715         1378.7266+-9.3519        
   access-fannkuch                                  467.4772+-32.4366         440.8781+-33.6757         might be 1.0603x faster
   access-nbody                                    1037.9371+-1.6282         1034.7320+-1.6044        
   access-nsieve                                    678.3118+-2.9731          675.6826+-6.0944        
   bitops-3bit-bits-in-byte                          50.8896+-0.8966     ?     51.0807+-0.4196        ?
   bitops-bits-in-byte                              344.3956+-2.9800          343.8072+-2.7501        
   bitops-nsieve-bits                               629.0178+-5.7104          627.8666+-4.4334        
   controlflow-recursive                            709.3497+-0.8398     ^    703.3580+-0.6315        ^ definitely 1.0085x faster
   crypto-aes                                       933.3588+-5.9685     ?    934.6479+-5.7318        ?
   crypto-md5                                       683.9178+-3.3079          682.2672+-8.9723        
   crypto-sha1                                      915.5109+-4.0541     ^    910.3347+-0.8222        ^ definitely 1.0057x faster
   date-format-tofte                                993.1617+-43.1704         984.2944+-2.6621        
   date-format-xparb                                989.0282+-4.2928     !   1047.1752+-32.4707       ! definitely 1.0588x slower
   math-cordic                                      672.9670+-1.6293          672.7302+-1.1759        
   math-partial-sums                               1068.0108+-7.1082         1066.5082+-4.1469        
   math-spectral-norm                              1072.4953+-0.9029     ^   1064.2513+-1.7631        ^ definitely 1.0077x faster
   string-base64                                    488.1353+-4.0599          486.6469+-3.2855        
   string-fasta                                     604.4690+-7.8138          600.0031+-5.9961        
   string-tagcloud                                  276.4984+-1.6085     ?    277.2037+-4.9739        ?

   &lt;geometric&gt;                                      693.3342+-1.1845          691.9971+-2.2918          might be 1.0019x faster

                                                          Conf#1                    Conf#2                                      
V8Spider:
   crypto                                            72.8729+-0.9843     ?     72.9085+-1.9642        ?
   deltablue                                         90.6683+-2.2873           89.4022+-3.5802          might be 1.0142x faster
   earley-boyer                                      63.6345+-0.6856           62.7613+-0.9145          might be 1.0139x faster
   raytrace                                          41.5044+-0.7309           40.7682+-2.4604          might be 1.0181x faster
   regexp                                           110.4010+-1.4171     ?    110.6057+-0.7042        ?
   richards                                          99.0670+-2.1324     ?    100.8824+-0.9996        ? might be 1.0183x slower
   splay                                             53.2233+-3.1016     ?     53.5613+-2.9946        ?

   &lt;geometric&gt;                                       72.1240+-0.9937           71.9214+-0.5743          might be 1.0028x faster

                                                          Conf#1                    Conf#2                                      
Octane:
   encrypt                                           0.30771+-0.00039    ?     0.30791+-0.00141       ?
   decrypt                                           5.65878+-0.01212    ?     5.67509+-0.03465       ?
   deltablue                                x2       0.26576+-0.00961    ?     0.27599+-0.01137       ? might be 1.0385x slower
   earley                                            0.64607+-0.00428          0.64506+-0.00307       
   boyer                                            10.44214+-0.11440         10.42770+-0.01663       
   navier-stokes                            x2       6.39080+-0.01134          6.38477+-0.00263       
   raytrace                                 x2       1.80358+-0.02352          1.72946+-0.07059         might be 1.0429x faster
   richards                                 x2       0.16658+-0.00238          0.16651+-0.00465       
   splay                                    x2       0.54419+-0.00945    ?     0.54690+-0.00357       ?
   regexp                                   x2      42.31243+-0.32199    ?    42.37793+-0.22416       ?
   pdfjs                                    x2      57.94230+-0.27754    ?    58.67918+-0.61763       ? might be 1.0127x slower
   mandreel                                 x2      69.69720+-0.39394         69.69618+-0.57666       
   gbemu                                    x2      59.71787+-0.58793    ?    59.81490+-0.35447       ?
   closure                                           0.75903+-0.00247          0.75559+-0.00792       
   jquery                                            9.45824+-0.04574          9.44228+-0.04492       
   box2d                                    x2      17.38628+-0.08540    ?    17.40287+-0.04921       ?
   zlib                                     x2     541.84515+-2.49419    ?   541.91532+-10.15354      ?
   typescript                               x2    1060.73999+-14.89385   ?  1074.58350+-36.70791      ? might be 1.0131x slower

   &lt;geometric&gt;                                       9.14094+-0.02379    ?     9.15677+-0.04845       ? might be 1.0017x slower

                                                          Conf#1                    Conf#2                                      
Kraken:
   ai-astar                                          480.865+-13.059     ^     346.508+-1.128         ^ definitely 1.3877x faster
   audio-beat-detection                              148.723+-2.109            147.436+-1.729         
   audio-dft                                         144.299+-4.111            142.467+-4.217           might be 1.0129x faster
   audio-fft                                         111.296+-1.604            111.105+-0.477         
   audio-oscillator                                   96.926+-0.081             96.841+-0.434         
   imaging-darkroom                                  139.427+-0.128      ?     139.544+-0.266         ?
   imaging-desaturate                                 94.574+-0.574             94.463+-0.179         
   imaging-gaussian-blur                             151.210+-13.586           147.299+-0.354           might be 1.0266x faster
   json-parse-financial                               66.614+-1.797             65.487+-0.142           might be 1.0172x faster
   json-stringify-tinderbox                           43.918+-0.723             43.573+-0.503         
   stanford-crypto-aes                                82.129+-1.979             82.088+-0.670         
   stanford-crypto-ccm                                67.121+-3.681      ?      68.066+-1.594         ? might be 1.0141x slower
   stanford-crypto-pbkdf2                            159.249+-2.410      ?     159.904+-1.132         ?
   stanford-crypto-sha256-iterative                   64.624+-1.677             64.119+-1.667         

   &lt;arithmetic&gt;                                      132.212+-0.703      ^     122.064+-0.573         ^ definitely 1.0831x faster

                                                          Conf#1                    Conf#2                                      
JSRegress:
   abs-boolean                                        3.7354+-0.1124            3.7336+-0.1152        
   adapt-to-double-divide                            17.9088+-0.4614     ?     18.0990+-0.4811        ? might be 1.0106x slower
   aliased-arguments-getbyval                         1.6483+-0.2354            1.6237+-0.2036          might be 1.0151x faster
   allocate-big-object                                3.8594+-0.5019            3.6978+-0.2010          might be 1.0437x faster
   arguments-named-and-reflective                    13.9742+-0.3046     ?     13.9869+-0.2023        ?
   arguments-out-of-bounds                           17.9718+-0.5186           17.9347+-0.5703        
   arguments-strict-mode                             11.9040+-0.7339     ?     12.0513+-1.0123        ? might be 1.0124x slower
   arguments                                         10.8785+-0.3452           10.7875+-0.1701        
   arity-mismatch-inlining                            1.1722+-0.1698            1.1370+-0.1150          might be 1.0310x faster
   array-access-polymorphic-structure                 9.4415+-0.5891            9.3060+-0.5798          might be 1.0146x faster
   array-nonarray-polymorhpic-access                 49.1620+-5.6189     ^     42.4359+-0.6589        ^ definitely 1.1585x faster
   array-prototype-every                            117.9456+-1.9301     ?    120.2440+-3.9798        ? might be 1.0195x slower
   array-prototype-forEach                          115.9567+-3.9929     ?    116.9478+-1.2063        ?
   array-prototype-map                              128.7217+-3.2365          128.6006+-4.2198        
   array-prototype-some                             116.1681+-3.1899     ?    118.4347+-4.9776        ? might be 1.0195x slower
   array-splice-contiguous                           57.2451+-0.5375     ?     58.0010+-1.2550        ? might be 1.0132x slower
   array-with-double-add                              5.6252+-0.0750     ?      5.6437+-0.2313        ?
   array-with-double-increment                        4.1425+-0.1745     ?      4.1430+-0.0818        ?
   array-with-double-mul-add                          8.0113+-0.2433     ^      7.1430+-0.1444        ^ definitely 1.1216x faster
   array-with-double-sum                              4.3774+-0.0644     ?      4.4006+-0.0939        ?
   array-with-int32-add-sub                           9.5967+-0.3844            9.5799+-0.2351        
   array-with-int32-or-double-sum                     4.4252+-0.1817     ?      4.4863+-0.1670        ? might be 1.0138x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     47.2195+-2.3805     ?     47.2685+-1.2503        ?
   ArrayBuffer-DataView-alloc-long-lived             18.7047+-0.5289           18.5272+-0.4265        
   ArrayBuffer-Int32Array-byteOffset                  5.3105+-0.1693            5.2238+-0.1623          might be 1.0166x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     50.8057+-1.4485     ?     51.2613+-4.5309        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     31.6698+-1.1597           31.4547+-0.9442        
   ArrayBuffer-Int8Array-alloc-long-lived            17.7678+-0.2917     ?     17.8988+-0.5499        ?
   ArrayBuffer-Int8Array-alloc                       15.0102+-0.4117           14.9760+-0.4665        
   asmjs_bool_bug                                     8.5575+-0.2780            8.4832+-0.1136        
   assign-custom-setter-polymorphic                   4.3235+-0.1596            4.2392+-0.2457          might be 1.0199x faster
   assign-custom-setter                               5.8701+-0.4519            5.8267+-0.2777        
   basic-set                                         11.3942+-0.7292     ?     12.2148+-0.7618        ? might be 1.0720x slower
   big-int-mul                                        5.8883+-0.4044     ?      5.9630+-0.3664        ? might be 1.0127x slower
   boolean-test                                       4.2051+-0.1700     ?      4.2776+-0.0992        ? might be 1.0172x slower
   branch-fold                                        4.7303+-0.1274     ?      4.7495+-0.0645        ?
   branch-on-string-as-boolean                       22.8486+-1.1200     ?     23.4976+-0.5926        ? might be 1.0284x slower
   by-val-generic                                    10.9012+-0.7251           10.5931+-0.1982          might be 1.0291x faster
   call-spread-apply                                 39.1586+-1.0481           38.2603+-1.0697          might be 1.0235x faster
   call-spread-call                                  32.6278+-2.0645           31.8426+-1.1482          might be 1.0247x faster
   captured-assignments                               0.6555+-0.0550     ?      0.6631+-0.1214        ? might be 1.0115x slower
   cast-int-to-double                                 8.2314+-0.3471            8.1517+-0.3530        
   cell-argument                                      9.7772+-0.1374     ?     10.0825+-0.4013        ? might be 1.0312x slower
   cfg-simplify                                       3.7693+-0.1229     ?      3.8120+-0.4283        ? might be 1.0113x slower
   chain-getter-access                               11.4783+-0.3865           11.3087+-0.2906          might be 1.0150x faster
   cmpeq-obj-to-obj-other                            12.4398+-0.3456           12.2455+-0.3966          might be 1.0159x faster
   constant-test                                      7.8868+-0.3202     ?      8.1558+-0.8399        ? might be 1.0341x slower
   create-lots-of-functions                          16.8372+-0.3507           16.6919+-0.6568        
   DataView-custom-properties                        53.3099+-1.0154           53.1384+-1.6919        
   deconstructing-parameters-overridden-by-function   
                                                      0.7389+-0.1572     ?      0.7487+-0.1475        ? might be 1.0132x slower
   delay-tear-off-arguments-strictmode               18.6036+-0.2330           18.5721+-0.2620        
   deltablue-varargs                                264.9066+-1.4691     ?    265.7395+-0.9195        ?
   destructuring-arguments                           22.9165+-0.4592           22.7300+-0.4893        
   destructuring-swap                                 7.8647+-0.1994            7.8244+-0.1384        
   direct-arguments-getbyval                          1.7355+-0.1801            1.6542+-0.2355          might be 1.0491x faster
   div-boolean-double                                 5.5276+-0.1048            5.5096+-0.0837        
   div-boolean                                        9.8295+-0.2676            9.7826+-0.2618        
   double-get-by-val-out-of-bounds                    5.9681+-0.0690     !      6.2098+-0.0437        ! definitely 1.0405x slower
   double-pollution-getbyval                          9.7162+-0.2979            9.7067+-0.2830        
   double-pollution-putbyoffset                       5.7421+-0.2066     ?      5.7944+-0.1793        ?
   double-to-int32-typed-array-no-inline              2.9047+-0.0911     ?      2.9411+-0.0890        ? might be 1.0125x slower
   double-to-int32-typed-array                        2.5522+-0.0992            2.5363+-0.1876        
   double-to-uint32-typed-array-no-inline             2.9568+-0.2207     ?      2.9908+-0.2095        ? might be 1.0115x slower
   double-to-uint32-typed-array                       2.7245+-0.2211            2.6095+-0.1889          might be 1.0441x faster
   elidable-new-object-dag                           55.2192+-0.6424     ?     55.9133+-2.3547        ? might be 1.0126x slower
   elidable-new-object-roflcopter                    58.2345+-1.7137           57.3688+-1.4217          might be 1.0151x faster
   elidable-new-object-then-call                     53.2241+-4.1455           51.3990+-1.6429          might be 1.0355x faster
   elidable-new-object-tree                          65.1043+-1.5141           65.0966+-0.7834        
   empty-string-plus-int                              7.4400+-0.4983            7.4388+-0.1947        
   emscripten-cube2hash                              44.6530+-0.9146           44.6135+-0.9454        
   exit-length-on-plain-object                       18.6757+-0.2625           18.6025+-0.6874        
   external-arguments-getbyval                        1.7012+-0.0751     ?      1.7025+-0.3491        ?
   external-arguments-putbyval                        3.2766+-0.0866            3.1896+-0.1435          might be 1.0273x faster
   fixed-typed-array-storage-var-index                1.6125+-0.0744            1.5928+-0.1187          might be 1.0124x faster
   fixed-typed-array-storage                          1.2548+-0.0921            1.2421+-0.0671          might be 1.0102x faster
   Float32Array-matrix-mult                           6.1805+-0.4285            6.0610+-0.7692          might be 1.0197x faster
   Float32Array-to-Float64Array-set                  71.4550+-2.8414     ?     73.2407+-4.2405        ? might be 1.0250x slower
   Float64Array-alloc-long-lived                     91.5484+-0.4592           91.5453+-0.5677        
   Float64Array-to-Int16Array-set                    97.3175+-2.5804     ^     92.0966+-2.1509        ^ definitely 1.0567x faster
   fold-double-to-int                                19.3442+-0.3550           19.2087+-0.0555        
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.9012+-0.4192     ?     11.3011+-0.3894        ? might be 1.0367x slower
   fold-get-by-id-to-multi-get-by-offset              9.1507+-0.5909     ?      9.2895+-0.4115        ? might be 1.0152x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.6567+-0.0755            7.8522+-0.9913          might be 1.1024x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.5142+-0.1735            8.3389+-0.6098          might be 1.0210x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.8245+-0.6984            7.7305+-0.6295          might be 1.0122x faster
   fold-multi-put-by-offset-to-put-by-offset   
                                                      6.3921+-0.7609     ?      6.4286+-0.7042        ?
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     13.1448+-0.6545           12.9755+-1.3580          might be 1.0130x faster
   fold-put-by-id-to-multi-put-by-offset              8.6461+-0.7468     ?      9.1091+-0.9770        ? might be 1.0536x slower
   fold-put-structure                                 6.2933+-0.6352     ?      6.6877+-0.8031        ? might be 1.0627x slower
   for-of-iterate-array-entries                       6.4566+-0.5069            6.3012+-0.0970          might be 1.0247x faster
   for-of-iterate-array-keys                          5.0457+-0.3531            4.9709+-0.1012          might be 1.0150x faster
   for-of-iterate-array-values                        4.7958+-0.2162     ?      4.8367+-0.0546        ?
   fround                                            23.4052+-1.6956     ?     23.5544+-0.7597        ?
   ftl-library-inlining-dataview                     89.0478+-0.4226     !     98.8783+-5.7649        ! definitely 1.1104x slower
   ftl-library-inlining                              87.7807+-9.6760           87.6375+-10.4341       
   function-dot-apply                                 2.6345+-0.2214     ?      2.7529+-0.0918        ? might be 1.0449x slower
   function-test                                      4.3090+-0.1759     ?      4.3618+-0.1059        ? might be 1.0123x slower
   function-with-eval                               134.2858+-0.6240          133.8984+-1.9662        
   gcse-poly-get-less-obvious                        24.7490+-0.1915           24.6497+-0.5340        
   gcse-poly-get                                     24.7110+-0.3604     ?     24.7255+-0.3128        ?
   gcse                                               6.4962+-0.1383     ?      6.5367+-0.1382        ?
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.3018+-0.1129            3.2977+-0.1104        
   get-by-id-bimorphic-check-structure-elimination   
                                                      8.1526+-0.2777     ?      8.3668+-0.3082        ? might be 1.0263x slower
   get-by-id-chain-from-try-block                    11.4468+-0.0817     ?     11.4684+-0.4147        ?
   get-by-id-check-structure-elimination              7.4720+-0.2873            7.4125+-0.1387        
   get-by-id-proto-or-self                           24.1395+-0.7583           23.1938+-1.9313          might be 1.0408x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.9338+-0.0810            3.9240+-0.1309        
   get-by-id-self-or-proto                           24.2550+-0.2918           23.3732+-2.4077          might be 1.0377x faster
   get-by-val-out-of-bounds                           6.1700+-0.4698            6.0308+-0.1994          might be 1.0231x faster
   get_callee_monomorphic                             3.7901+-0.1907     ?      4.1425+-0.8026        ? might be 1.0930x slower
   get_callee_polymorphic                             4.8707+-0.3796            4.6165+-0.3908          might be 1.0551x faster
   getter-no-activation                               5.7663+-0.0724     ?      5.8325+-0.0473        ? might be 1.0115x slower
   getter-richards                                  131.9205+-2.8582     ?    133.1222+-2.6337        ?
   getter                                             7.1388+-0.0775     ?      7.1577+-0.1050        ?
   global-var-const-infer-fire-from-opt               1.3614+-0.1702            1.1968+-0.2915          might be 1.1375x faster
   global-var-const-infer                             1.1533+-0.1505     ?      1.1868+-0.1829        ? might be 1.0291x slower
   HashMap-put-get-iterate-keys                      33.3495+-0.7736     ?     33.5013+-0.9209        ?
   HashMap-put-get-iterate                           32.4583+-0.2898     ?     32.8713+-0.6172        ? might be 1.0127x slower
   HashMap-string-put-get-iterate                    36.3760+-2.9205           35.7398+-1.7104          might be 1.0178x faster
   hoist-make-rope                                   13.7410+-1.3871     ?     13.9276+-1.6943        ? might be 1.0136x slower
   hoist-poly-check-structure-effectful-loop   
                                                      6.8183+-0.1637     ?      6.9527+-0.0592        ? might be 1.0197x slower
   hoist-poly-check-structure                         4.8292+-0.1497     ?      4.8901+-0.0976        ? might be 1.0126x slower
   imul-double-only                                  10.0575+-0.5030     ?     10.4946+-0.4827        ? might be 1.0435x slower
   imul-int-only                                     11.7420+-1.1632     ?     12.0264+-0.8468        ? might be 1.0242x slower
   imul-mixed                                         9.4063+-0.7483     ?      9.8138+-0.1856        ? might be 1.0433x slower
   in-four-cases                                     25.4580+-0.4509     ^     24.6800+-0.0682        ^ definitely 1.0315x faster
   in-one-case-false                                 13.2842+-0.3122     ^     12.3500+-0.2523        ^ definitely 1.0756x faster
   in-one-case-true                                  13.5540+-0.8814     ^     12.3245+-0.1821        ^ definitely 1.0998x faster
   in-two-cases                                      13.5930+-0.2615     ^     13.0262+-0.1460        ^ definitely 1.0435x faster
   indexed-properties-in-objects                      3.7938+-0.1305            3.7905+-0.1832        
   infer-closure-const-then-mov-no-inline             4.6672+-0.1272            4.6385+-0.1480        
   infer-closure-const-then-mov                      24.1671+-0.6298     ?     24.9845+-1.0177        ? might be 1.0338x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     14.6125+-0.4296           14.5165+-0.3437        
   infer-closure-const-then-put-to-scope             27.8470+-0.3234     ?     28.2328+-0.6418        ? might be 1.0139x slower
   infer-closure-const-then-reenter-no-inline   
                                                     61.6763+-1.2928           61.5002+-0.5825        
   infer-closure-const-then-reenter                  29.5238+-0.1966     ?     29.6221+-0.7504        ?
   infer-constant-global-property                     4.7191+-0.1404     ?      4.7219+-0.1943        ?
   infer-constant-property                            3.2610+-0.1254     ?      3.2627+-0.0736        ?
   infer-one-time-closure-ten-vars                   14.6371+-0.1324           14.4320+-0.1978          might be 1.0142x faster
   infer-one-time-closure-two-vars                   14.4709+-0.1812           14.4537+-0.7159        
   infer-one-time-closure                            14.0451+-0.3671           14.0165+-0.4598        
   infer-one-time-deep-closure                       24.4062+-0.7046     ?     24.9091+-1.0716        ? might be 1.0206x slower
   inline-arguments-access                            6.1610+-0.2448            6.0185+-0.1270          might be 1.0237x faster
   inline-arguments-aliased-access                    6.1627+-0.3095     ?      6.2526+-0.2820        ? might be 1.0146x slower
   inline-arguments-local-escape                      6.3468+-0.3907            6.1014+-0.1353          might be 1.0402x faster
   inline-get-scoped-var                              5.7005+-0.0642            5.6773+-0.0167        
   inlined-put-by-id-transition                      14.8317+-0.4942     ?     16.0319+-2.0715        ? might be 1.0809x slower
   int-or-other-abs-then-get-by-val                   6.7510+-0.2141     ?      6.7677+-0.1003        ?
   int-or-other-abs-zero-then-get-by-val             28.6926+-0.9126           27.2861+-1.5747          might be 1.0515x faster
   int-or-other-add-then-get-by-val                   5.3757+-0.0448     !      5.5343+-0.0605        ! definitely 1.0295x slower
   int-or-other-add                                   7.9206+-0.2507     ?      7.9795+-0.0917        ?
   int-or-other-div-then-get-by-val                   5.2422+-0.1052            5.1876+-0.1171          might be 1.0105x faster
   int-or-other-max-then-get-by-val                   5.1267+-0.1420     ?      5.1340+-0.1042        ?
   int-or-other-min-then-get-by-val                   5.0787+-0.1248            5.0181+-0.1896          might be 1.0121x faster
   int-or-other-mod-then-get-by-val                   4.9977+-0.0850            4.9056+-0.1972          might be 1.0188x faster
   int-or-other-mul-then-get-by-val                   4.9427+-0.1544            4.8622+-0.1140          might be 1.0166x faster
   int-or-other-neg-then-get-by-val                   6.0675+-0.1224            6.0459+-0.1362        
   int-or-other-neg-zero-then-get-by-val             28.1220+-0.4628     ^     26.9724+-0.1718        ^ definitely 1.0426x faster
   int-or-other-sub-then-get-by-val                   5.8755+-0.1251     ?      6.0551+-0.3752        ? might be 1.0306x slower
   int-or-other-sub                                   4.2156+-0.1210     ?      4.2291+-0.1669        ?
   int-overflow-local                                 5.6610+-0.1946     ?      5.6998+-0.0919        ?
   Int16Array-alloc-long-lived                       62.9570+-1.0537           62.5540+-0.5452        
   Int16Array-bubble-sort-with-byteLength            37.7992+-0.5534           37.4625+-0.5083        
   Int16Array-bubble-sort                            36.8207+-0.2083     ?     37.4307+-0.7676        ? might be 1.0166x slower
   Int16Array-load-int-mul                            1.9893+-0.1213     ?      1.9919+-0.0596        ?
   Int16Array-to-Int32Array-set                      72.5517+-1.7964           70.4373+-2.6397          might be 1.0300x faster
   Int32Array-alloc-large                            32.9401+-1.2831     ?     33.3011+-1.2011        ? might be 1.0110x slower
   Int32Array-alloc-long-lived                       70.0492+-1.6979     ?     70.1092+-1.3616        ?
   Int32Array-alloc                                   4.5004+-0.2771     ?      4.5442+-0.0933        ?
   Int32Array-Int8Array-view-alloc                    9.8594+-0.3520            9.6715+-0.2971          might be 1.0194x faster
   int52-spill                                        7.9307+-0.1874     ?      8.0980+-0.4436        ? might be 1.0211x slower
   Int8Array-alloc-long-lived                        56.1036+-0.7580     ?     57.0907+-1.4535        ? might be 1.0176x slower
   Int8Array-load-with-byteLength                     4.7528+-0.0529            4.7130+-0.1295        
   Int8Array-load                                     4.6738+-0.0737     ?      4.6995+-0.0559        ?
   integer-divide                                    13.3618+-0.5228     ?     13.4872+-0.2106        ?
   integer-modulo                                     2.7648+-0.1156     ?      2.8134+-0.2588        ? might be 1.0176x slower
   is-boolean-fold-tricky                             5.7588+-0.0865            5.7588+-0.1018        
   is-boolean-fold                                    3.9911+-0.0909     ?      3.9943+-0.0914        ?
   is-function-fold-tricky-internal-function   
                                                     14.6224+-0.3116     ?     14.8000+-1.1129        ? might be 1.0122x slower
   is-function-fold-tricky                            5.8203+-0.2405     ?      5.9265+-0.1826        ? might be 1.0183x slower
   is-function-fold                                   4.0134+-0.0888     ?      4.0175+-0.1103        ?
   is-number-fold-tricky                              5.7798+-0.1598     ?      5.7875+-0.1161        ?
   is-number-fold                                     3.9615+-0.1693     ?      3.9907+-0.1603        ?
   is-object-or-null-fold-functions                   3.9996+-0.1044     ?      4.0066+-0.1377        ?
   is-object-or-null-fold-less-tricky                 5.8615+-0.1381     ?      5.9565+-0.0341        ? might be 1.0162x slower
   is-object-or-null-fold-tricky                      7.4613+-0.2196     ?      7.5546+-0.2615        ? might be 1.0125x slower
   is-object-or-null-fold                             4.1080+-0.1057            3.9886+-0.1016          might be 1.0299x faster
   is-object-or-null-trickier-function                5.9871+-0.1939            5.8862+-0.2492          might be 1.0172x faster
   is-object-or-null-trickier-internal-function   
                                                     15.9462+-1.6058           15.4556+-0.9629          might be 1.0317x faster
   is-object-or-null-tricky-function                  5.8688+-0.1256     ?      5.9645+-0.0827        ? might be 1.0163x slower
   is-object-or-null-tricky-internal-function   
                                                     11.7362+-1.0414           11.3077+-0.0767          might be 1.0379x faster
   is-string-fold-tricky                              5.7340+-0.1490            5.6766+-0.2483          might be 1.0101x faster
   is-string-fold                                     4.0060+-0.2547            3.9756+-0.0985        
   is-undefined-fold-tricky                           4.6666+-0.4316            4.5132+-0.1887          might be 1.0340x faster
   is-undefined-fold                                  3.8989+-0.0775     ?      3.9800+-0.1111        ? might be 1.0208x slower
   large-int-captured                                 6.7093+-0.2458            6.6517+-0.1017        
   large-int-neg                                     20.7574+-0.5073           20.6547+-0.2463        
   large-int                                         18.6873+-0.2688     ?     18.8534+-0.1886        ?
   logical-not                                        6.0782+-0.2403            6.0688+-0.1620        
   lots-of-fields                                    19.4328+-0.0876           19.3887+-0.5395        
   make-indexed-storage                               4.2186+-0.2934     ?      4.3051+-0.5265        ? might be 1.0205x slower
   make-rope-cse                                      6.6907+-0.2630            6.6185+-0.2298          might be 1.0109x faster
   marsaglia-larger-ints                             55.1337+-0.9828           54.9319+-0.5453        
   marsaglia-osr-entry                               27.6518+-0.7756     ?     28.2576+-0.8517        ? might be 1.0219x slower
   max-boolean                                        3.4627+-0.2215            3.3973+-0.2011          might be 1.0193x faster
   method-on-number                                  24.6814+-1.4586           23.4730+-1.0759          might be 1.0515x faster
   min-boolean                                        3.3266+-0.2590     ?      3.3333+-0.2826        ?
   minus-boolean-double                               4.1248+-0.0632     !      4.2524+-0.0433        ! definitely 1.0310x slower
   minus-boolean                                      3.2783+-0.0802            3.2256+-0.0689          might be 1.0163x faster
   misc-strict-eq                                    57.1432+-1.5033           57.0510+-2.0406        
   mod-boolean-double                                11.7264+-0.2751           11.6060+-0.3073          might be 1.0104x faster
   mod-boolean                                        8.6642+-0.2044     ?      8.7730+-0.1388        ? might be 1.0126x slower
   mul-boolean-double                                 4.9161+-0.1126            4.8929+-0.1839        
   mul-boolean                                        3.5718+-0.1086            3.4843+-0.0846          might be 1.0251x faster
   neg-boolean                                        4.3804+-0.1368            4.3528+-0.1369        
   negative-zero-divide                               0.4441+-0.0167     ?      0.5352+-0.1663        ? might be 1.2052x slower
   negative-zero-modulo                               0.5046+-0.1239     ?      0.5212+-0.0886        ? might be 1.0330x slower
   negative-zero-negate                               0.4233+-0.0158     ?      0.4294+-0.0227        ? might be 1.0146x slower
   nested-function-parsing                           58.7930+-0.4188     ?     58.9720+-0.4573        ?
   new-array-buffer-dead                            139.8837+-1.8754     ?    140.7181+-0.9710        ?
   new-array-buffer-push                              9.7011+-0.4574     ?      9.7664+-0.6850        ?
   new-array-dead                                    22.0250+-2.5260     ?     22.2811+-2.4747        ? might be 1.0116x slower
   new-array-push                                     5.2936+-0.2830     ?      5.3692+-0.1768        ? might be 1.0143x slower
   no-inline-constructor                            162.4305+-1.2846          162.2382+-0.2116        
   number-test                                        4.1615+-0.1387     ?      4.2358+-0.0958        ? might be 1.0179x slower
   object-closure-call                                7.3557+-0.0774            7.2430+-0.2931          might be 1.0156x faster
   object-test                                        4.2936+-0.4330            4.2451+-0.0755          might be 1.0114x faster
   obvious-sink-pathology-taken                     174.1981+-2.3322     ?    174.2998+-1.5224        ?
   obvious-sink-pathology                           158.3652+-2.0818     ?    161.2597+-1.8590        ? might be 1.0183x slower
   obviously-elidable-new-object                     48.6956+-5.5261           46.2335+-4.6435          might be 1.0533x faster
   plus-boolean-arith                                 3.3117+-0.1108            3.2820+-0.0839        
   plus-boolean-double                                4.2551+-0.1092            4.1733+-0.1107          might be 1.0196x faster
   plus-boolean                                       3.2573+-0.0954            3.1736+-0.1297          might be 1.0264x faster
   poly-chain-access-different-prototypes-simple   
                                                      3.8975+-0.1685     ?      3.9359+-0.1681        ?
   poly-chain-access-different-prototypes             3.1844+-0.0872            3.1344+-0.0857          might be 1.0159x faster
   poly-chain-access-simpler                          3.8538+-0.2004            3.8352+-0.1121        
   poly-chain-access                                  3.0751+-0.1496     ?      3.1647+-0.2780        ? might be 1.0291x slower
   poly-stricteq                                     70.6735+-0.7706           70.0264+-0.9420        
   polymorphic-array-call                             1.9133+-0.1339            1.6375+-0.2691          might be 1.1685x faster
   polymorphic-get-by-id                              4.1060+-0.1083     ?      4.1573+-0.2088        ? might be 1.0125x slower
   polymorphic-put-by-id                             39.9557+-5.3225     ?     40.2709+-5.6240        ?
   polymorphic-structure                             17.6393+-0.2389     ?     17.8649+-0.3210        ? might be 1.0128x slower
   polyvariant-monomorphic-get-by-id                 11.5646+-0.1480           11.5195+-0.1883        
   proto-getter-access                               11.4307+-0.7228     ?     11.5670+-0.6722        ? might be 1.0119x slower
   put-by-id-replace-and-transition                  12.6222+-0.4676           12.5017+-0.2799        
   put-by-id-slightly-polymorphic                     3.4604+-0.1185     ?      3.5508+-0.1130        ? might be 1.0261x slower
   put-by-id                                         18.4367+-0.5186     ?     19.3102+-1.2108        ? might be 1.0474x slower
   put-by-val-direct                                  0.5443+-0.0972            0.5408+-0.1641        
   put-by-val-large-index-blank-indexing-type   
                                                      8.6073+-0.3964     ?      8.7965+-0.4133        ? might be 1.0220x slower
   put-by-val-machine-int                             3.5677+-0.2940     ?      3.5931+-0.1475        ?
   rare-osr-exit-on-local                            18.5121+-0.3894           18.4775+-0.3708        
   register-pressure-from-osr                        26.0280+-0.7566           25.6618+-0.2595          might be 1.0143x faster
   setter                                             6.4290+-0.0868     ?      6.5334+-0.0949        ? might be 1.0163x slower
   simple-activation-demo                            31.6697+-0.5580           30.6970+-0.5398          might be 1.0317x faster
   simple-getter-access                              15.4708+-1.3174           15.3482+-0.4950        
   simple-poly-call-nested                           10.0801+-0.1844           10.0253+-0.1489        
   simple-poly-call                                   1.6707+-0.0372     ?      1.7593+-0.1497        ? might be 1.0530x slower
   sin-boolean                                       24.2405+-4.0506           22.1197+-0.7820          might be 1.0959x faster
   singleton-scope                                   80.6666+-0.5353           80.4058+-1.2139        
   sink-function                                     14.3201+-1.6553     ?     15.4960+-1.8281        ? might be 1.0821x slower
   sinkable-new-object-dag                           95.6910+-1.3128     ?     95.8181+-0.7689        ?
   sinkable-new-object-taken                         69.7025+-2.4355     ?     71.1367+-4.5821        ? might be 1.0206x slower
   sinkable-new-object                               52.4555+-5.0395     ?     53.6763+-1.6764        ? might be 1.0233x slower
   slow-array-profile-convergence                     4.2880+-0.5439            3.9835+-0.2412          might be 1.0764x faster
   slow-convergence                                   3.8136+-0.1367     ?      3.8790+-0.2788        ? might be 1.0171x slower
   sorting-benchmark                                 26.4373+-0.8953     ?     26.7104+-1.3317        ? might be 1.0103x slower
   sparse-conditional                                 1.6038+-0.0730            1.5632+-0.1722          might be 1.0260x faster
   splice-to-remove                                  20.8183+-0.7855     ?     21.0294+-1.0120        ? might be 1.0101x slower
   string-char-code-at                               19.6927+-1.0323           19.3468+-0.0820          might be 1.0179x faster
   string-concat-object                               3.3577+-0.3182     ?      3.4168+-0.2870        ? might be 1.0176x slower
   string-concat-pair-object                          3.3210+-0.3337            3.2933+-0.4373        
   string-concat-pair-simple                         17.2225+-0.4418           16.7405+-0.5364          might be 1.0288x faster
   string-concat-simple                              17.0902+-0.4441     ?     17.1182+-0.0911        ?
   string-cons-repeat                                11.5198+-1.0908           11.1112+-0.1850          might be 1.0368x faster
   string-cons-tower                                 10.6085+-0.1604           10.5740+-0.3335        
   string-equality                                   23.2667+-0.1578           23.2639+-0.2592        
   string-get-by-val-big-char                         9.8333+-0.3229     ?      9.9057+-0.4226        ?
   string-get-by-val-out-of-bounds-insane             5.0988+-0.2449     ?      5.2474+-0.1338        ? might be 1.0291x slower
   string-get-by-val-out-of-bounds                    6.7997+-0.1608     ?      6.9597+-0.3269        ? might be 1.0235x slower
   string-get-by-val                                  4.6818+-0.2388     ?      4.7716+-0.1136        ? might be 1.0192x slower
   string-hash                                        2.8141+-0.0920            2.7394+-0.1858          might be 1.0272x faster
   string-long-ident-equality                        18.6293+-0.3671     ?     18.6553+-0.4450        ?
   string-out-of-bounds                              17.4517+-0.1716           17.4380+-0.1404        
   string-repeat-arith                               40.3918+-1.1263           39.5048+-0.7392          might be 1.0225x faster
   string-sub                                        78.1627+-1.2681           77.6304+-1.6138        
   string-test                                        4.2141+-0.0516     ?      4.2692+-0.1431        ? might be 1.0131x slower
   string-var-equality                               45.1135+-1.2380           44.3307+-0.2628          might be 1.0177x faster
   structure-hoist-over-transitions                   3.6113+-0.1318            3.5843+-0.1140        
   substring-concat-weird                            54.8107+-1.2000     ?     55.1127+-1.5804        ?
   substring-concat                                  58.1064+-0.6506     ?     58.5209+-0.5806        ?
   substring                                         63.4324+-1.5833     ?     63.8988+-0.5295        ?
   switch-char-constant                               3.3991+-0.1048            3.3470+-0.0598          might be 1.0156x faster
   switch-char                                        8.3154+-0.1741     ^      7.6473+-0.0726        ^ definitely 1.0874x faster
   switch-constant                                   11.4772+-0.8718           11.3917+-0.4410        
   switch-string-basic-big-var                       27.7782+-0.2517           27.5092+-0.6650        
   switch-string-basic-big                           21.5125+-5.4240     ?     22.6737+-4.6780        ? might be 1.0540x slower
   switch-string-basic-var                           27.6625+-0.7824           27.2134+-1.0483          might be 1.0165x faster
   switch-string-basic                               16.1723+-0.4351     ?     17.3353+-2.5906        ? might be 1.0719x slower
   switch-string-big-length-tower-var                25.9818+-0.1814           25.9594+-0.3046        
   switch-string-length-tower-var                    19.7414+-0.3839           19.5394+-0.4463          might be 1.0103x faster
   switch-string-length-tower                        16.8587+-1.5632           16.6362+-0.7025          might be 1.0134x faster
   switch-string-short                               14.1404+-0.3280           13.7953+-0.3156          might be 1.0250x faster
   switch                                            18.3950+-0.3891           16.1973+-2.2240          might be 1.1357x faster
   tear-off-arguments-simple                          4.5735+-0.1899            4.5621+-0.3900        
   tear-off-arguments                                 6.4413+-0.3780            6.2729+-0.3452          might be 1.0268x faster
   temporal-structure                                15.2394+-0.2913     ?     15.3918+-0.2073        ?
   to-int32-boolean                                  20.5565+-0.5646     ?     20.9765+-0.2636        ? might be 1.0204x slower
   try-catch-get-by-val-cloned-arguments             19.8458+-1.2370           19.3103+-0.3214          might be 1.0277x faster
   try-catch-get-by-val-direct-arguments              8.6525+-0.4387     ?      8.7627+-0.3711        ? might be 1.0127x slower
   try-catch-get-by-val-scoped-arguments             10.5080+-0.7655           10.2823+-0.4349          might be 1.0219x faster
   typed-array-get-set-by-val-profiling              43.3593+-3.1999     ?     43.6428+-0.6773        ?
   undefined-property-access                        421.6635+-4.6915     ?    425.0971+-4.3603        ?
   undefined-test                                     4.4355+-0.1566     ?      4.4938+-0.0462        ? might be 1.0131x slower
   unprofiled-licm                                   27.7910+-0.8899           27.3430+-0.6653          might be 1.0164x faster
   varargs-call                                      18.1255+-1.3965           17.8550+-0.3522          might be 1.0151x faster
   varargs-construct-inline                          30.1406+-0.5577     ^     28.8843+-0.5513        ^ definitely 1.0435x faster
   varargs-construct                                 44.0071+-1.2223           43.2736+-0.9487          might be 1.0169x faster
   varargs-inline                                    10.6042+-0.1786           10.3942+-0.1764          might be 1.0202x faster
   varargs-strict-mode                               12.7635+-0.3467           12.5423+-0.2022          might be 1.0176x faster
   varargs                                           12.7338+-0.2028     ?     12.7427+-0.1788        ?
   weird-inlining-const-prop                          2.9715+-0.2141     ?      3.0852+-0.4993        ? might be 1.0383x slower

   &lt;geometric&gt;                                       10.9177+-0.0294           10.8902+-0.0402          might be 1.0025x faster

                                                          Conf#1                    Conf#2                                      
AsmBench:
   bigfib.cpp                                       671.2872+-3.4993          668.2188+-5.7185        
   cray.c                                           623.5895+-4.1691          618.1917+-3.0196        
   dry.c                                            651.3746+-14.5903    ?    653.9422+-1.4227        ?
   FloatMM.c                                        954.6768+-0.4261     ?    955.1008+-1.1031        ?
   gcc-loops.cpp                                   5877.6520+-10.5185        5875.0744+-8.0721        
   n-body.c                                        1668.5110+-1.3811         1667.5019+-0.2854        
   Quicksort.c                                      571.2950+-11.1789         570.0117+-9.3460        
   stepanov_container.cpp                          4883.7885+-38.0455        4881.4542+-30.1892       
   Towers.c                                         375.8582+-1.3565     ^    371.0027+-2.0792        ^ definitely 1.0131x faster

   &lt;geometric&gt;                                     1115.6080+-2.5751     ^   1112.4407+-0.5724        ^ definitely 1.0028x faster

                                                          Conf#1                    Conf#2                                      
CompressionBench:
   huffman                                          502.3149+-2.9301          501.2273+-7.7351        
   arithmetic-simple                                527.4620+-1.2347     ^    463.9194+-2.7719        ^ definitely 1.1370x faster
   arithmetic-precise                               402.6512+-2.5964     ^    387.0590+-1.9937        ^ definitely 1.0403x faster
   arithmetic-complex-precise                       403.2155+-3.0490          400.7200+-3.4195        
   arithmetic-precise-order-0                       566.5947+-8.0850     ^    486.5091+-14.5647       ^ definitely 1.1646x faster
   arithmetic-precise-order-1                       427.9297+-22.6108         420.6318+-3.1192          might be 1.0174x faster
   arithmetic-precise-order-2                       470.7887+-1.6870          470.0422+-1.7822        
   arithmetic-simple-order-1                        528.2590+-3.3715     ?    528.3013+-0.8666        ?
   arithmetic-simple-order-2                        583.4188+-2.9492     ?    585.6379+-1.7343        ?
   lz-string                                        417.4472+-2.7028     ?    418.1752+-7.4047        ?

   &lt;geometric&gt;                                      478.6687+-2.8539     ^    462.5936+-1.6204        ^ definitely 1.0348x faster

                                                          Conf#1                    Conf#2                                      
Geomean of preferred means:
   &lt;scaled-result&gt;                                   83.9856+-0.1956     ^     82.7440+-0.1814        ^ definitely 1.0150x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094999</commentid>
    <comment_count>3</comment_count>
      <attachid>253166</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-14 19:27:22 -0700</bug_when>
    <thetext>Comment on attachment 253166
Patch

I don&apos;t like this change since it doesn&apos;t guard against overflow of the counter. Can&apos;t you just lift the &quot;soon&quot; threshold or just use a different threshold?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095002</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-14 19:54:38 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 253166 [details]
&gt; Patch
&gt; 
&gt; I don&apos;t like this change since it doesn&apos;t guard against overflow of the
&gt; counter. Can&apos;t you just lift the &quot;soon&quot; threshold or just use a different
&gt; threshold?

I get it now - you&apos;re trying to guarantee that the outer loop&apos;s check hits the slow path, and then does OSR entry.  I agree that we want this.  I also agree that your approach achieves this goal, but it does so at some cost: it means we risk wrap-around on the counter for inner loops.

One approach would be to say &quot;screw it&quot; and risk the wrap-around.  I don&apos;t like this approach.  It feels somewhat dangerous.  It also risks triggering the original compilation later than needed.

Another approach is to just have a saturation check for inner loops, rather than the current become-not-signed check.  This will fix the wrap-around, but still has the problem of not triggering compilation soon enough.

But I believe you want something else: you want those CheckTierUpAndOSREnter that have a nested CheckTierUpInLoop to actually do one additional check: check some bit that says &quot;I&apos;ve got a compilation ready, please call slow path now&quot;.  So this means adding a third variant: CheckTierUpAndNestedTriggerAndOSREnter, or something. This bit would be set by the slow path of CheckTierUpInLoop.  CheckTierUpInLoop would use thresholdForFTLOptimizeAfterWarmUp(), though CheckTierUpAndNestedTriggerAndOSREnter and CheckTierUpAndOSREnter will still use thresholdForFTLOptimizeSoon (since there, it makes total sense to fall back into the trigger soon to check if the compilation is done).

This will make CheckTierUpAndNestedTriggerAndOSREnter more expensive than either CheckTierUpAndOSREnter or CheckTierUpInLoop.  But I don&apos;t believe that the actual branch to test whether we should call slow path is what is killing you.  It&apos;s just that the outer loop never realizes that it should take slow path.  The extra bit could help you with this.

Note that this also means that we should have CheckTierUpInLoop do one of two things for OSR entry compiles:

1) Never trigger OSR entry compiles, and instead set the bit that causes the outer loop to trigger.

2) Have CheckTierUpInLoop take a parameter that is something like &quot;OSR entrypoint for closest outer loop that can OSR enter&quot;.  This is what it will use for the OSR entry compile rather than using its own bytecode index.  You&apos;ll probably have to also play some tricks with the OSR entry values (the mustHandleValues), where it&apos;s the outer loop that records them and the inner loop trigger just uses them - since we need to collect mustHandleValues for the loop that we will be OSR entering into.

I prefer (1) for now because it&apos;s easier to implement.

This means that in Kraken/ai-aster, the inner loop will kick off a replacement compilation.  This will happen sooner than in your solution.  Then the inner loop will realize when the compilation is done, and realize that what we really need is an OSR entry compile.  It will set the bit and return with thresholdForFTLOptimizeAfterWarmUp.  Then when we pop out of the inner loop, the outer loop will *immediately* realize that we already crossed the counter threshold (because of the bit being set) and it will do the OSR entry logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095339</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-15 18:03:50 -0700</bug_when>
    <thetext>I&apos;ll upload an alternative patch elsewhere once it is fully tested.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253166</attachid>
            <date>2015-05-14 18:57:24 -0700</date>
            <delta_ts>2015-05-14 20:24:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145033-20150514185600.patch</filename>
            <type>text/plain</type>
            <size>10660</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0MjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
M2NkMzliM2FkMGM3ZjZiYmU3NGZlZjA4ZjY1NmZmNmNmZDAyMTEwLi5kNTcxNDUxMGZmZjBkOTdh
NDhhZDM4N2IwNGExNjg2OGI2MmVkYTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxNS0wNS0xNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBSZXBsYWNlIENoZWNrVGllclVwSW5Mb29wIGJ5IGEgc2lt
cGxlIGxvb3AgY291bnRlciBpbmNyZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NTAzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENoZWNrVGllclVwSW5Mb29wIGlzIGhpdHRpbmcgdXMgaGFyZCBv
biBzZXZlcmFsIGJlbmNobWFya3MuIEluc3RlYWQgb2YgaGVscGluZworICAgICAgICBjb21waWxp
bmcgc29vbmVyLCBpdCBnZW5lcmFsbHkgY2F1c2VzIHVzIHRvIHNpZ25pZmljYW50bHkgc2xvdyBk
b3duIHRpZ2h0IGxvb3BzCisgICAgICAgIChBU01CZW5jaCkgb3IgcHJldmVudCB1cyB0byBnbyB0
byBGVEwgKEtyYWtlbikuCisKKyAgICAgICAgVGhlIGNhc2Ugb2YgS3Jha2VuJ3MgYWktYXN0YXIg
d2FzIHF1aXRlIHVuZm9ydHVuYXRlLiBXZSBoYXZlIGEgdmVyeSB2ZXJ5IGhvdAorICAgICAgICBs
b29wIHRoYXQgd2FzIGlubGluZWQuIENvbnNlcXVlbnRseSwgaXQgaGFkIENoZWNrVGllclVwSW5M
b29wIGF0IHRoZSBsb29wIGVudHJ5LgorCisgICAgICAgIC1QcmV0dHkgcXVpY2tseSwgd2Ugd291
bGQgcnVuIHRyaWdnZXJUaWVyVXBOb3coKSBhbmQgc3RhcnQgY29tcGlsaW5nIHRoZSBlbnRpcmUK
KyAgICAgICAgIGZ1bmN0aW9uIHRvIEZUTC4KKyAgICAgICAgLUFmdGVyIHRoZSBGVEwgY29kZSBp
cyBjb21waWxlZCwgZXZlcnkgdGltZSB3ZSBlbnRlciB0cmlnZ2VyVGllclVwTm93KCksIHdlIHdl
cmUKKyAgICAgICAgIGluIHRoZSAib3B0aW1pemVTb29uIiBjYXNlIHdoaWNoIHJlc2V0cyB0aGUg
Y291bnRlciB0byB0aHJlc2hvbGRGb3JPcHRpbWl6ZVNvb24oKS4KKyAgICAgICAgLVNpbmNlIHRo
cmVzaG9sZEZvck9wdGltaXplU29vbigpIGlzIGEgc21hbGwgdmFsdWUsIHdlIHN0YXJ0IGhpdHRp
bmcgdHJpZ2dlclRpZXJVcE5vdygpCisgICAgICAgICB2ZXJ5IHZlcnkgZnJlcXVlbnRseSBpbiB0
aGUgaG90IGxvb3AsIHNsb3dpbmcgaXQgZG93biBxdWl0ZSBhIGJpdC4KKyAgICAgICAgLUV2ZXJ5
IHRpbWUgd2UgcmUtZW50ZXIsIHdlIHJlc2V0IHRoZSBjb3VudGVyIHRvIHRocmVzaG9sZEZvck9w
dGltaXplU29vbigpLiBTaW5jZSB3ZSBlbnRlcgorICAgICAgICAgdGhlIG91dHNpZGUgbG9vcCB2
ZXJ5IGluZnJlcXVlbnRseSwgQ2hlY2tUaWVyVXBBbmRPU1JFbnRlciBuZXZlciBnZXRzIGEgY2hh
bmNlCisgICAgICAgICB0byBjb21waWxlIGEgRlRMIHZlcnNpb24gd2l0aCBhIHVzZWZ1bCBPU1Ig
ZW50cnkuCisKKyAgICAgICAgQW55IHR3ZWFraW5nIG9mIHRoZSB2YWx1ZXMgc2VlbXMgdG8gaGVs
cCwgYnV0IHRoZSBiZXN0IHJlc3VsdHMgYXJlIG9idGFpbmVkIGJ5IHJlbW92aW5nCisgICAgICAg
IENoZWNrVGllclVwSW5Mb29wIGNvbXBsZXRlbHkuIE5vdyB0aGUgSW5jcmVtZW50VGllclVwQ291
bnRlckluTG9vcCBoaXRzIHRoZSBjb3VudGVyIHByZXR0eQorICAgICAgICBxdWlja2x5IGFuZCBD
aGVja1RpZXJVcEFuZE9TUkVudGVyIGdldHMgYSBjaGFuY2UgdG8gY29tcGlsZSBtdWNoIHNvb25l
ci4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+Ojpl
eGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAq
IGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1RpZXJV
cENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlRpZXJVcENoZWNr
SW5qZWN0aW9uUGhhc2U6OnJ1bik6CisKIDIwMTUtMDUtMTIgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB0aGUgaXRlcmF0aW9uIGNvdW50IG9m
IGFyaXRoLW1vZHVsby1ub2RlLWJlaGF2aW9ycy5qcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGUw
MGI0NjhjZDE4NjZhNGE1ZDkwMDY1MDgwNDc5ZTMxNDFkMjEyYjIuLmRmMThmNWM3MGI3YWU2NTE1
ZjU0NWMzNTg0ZWE2NDEzYzhkMjY1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTIyNDIsNyAr
MjI0Miw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4
ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgY2FzZSBQcm9maWxlQ29udHJv
bEZsb3c6CiAgICAgY2FzZSBQaGFudG9tOgogICAgIGNhc2UgQ291bnRFeGVjdXRpb246Ci0gICAg
Y2FzZSBDaGVja1RpZXJVcEluTG9vcDoKKyAgICBjYXNlIEluY3JlbWVudFRpZXJVcENvdW50ZXJJ
bkxvb3A6CiAgICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgogICAgICAgICBicmVhazsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCAzNTBiMjBkYzI4
NmRiZjk0MWRkYTA1ZDc4MGJhZDEwZThmOTQ1ZDRjLi4xMmU2OTE3ODM2YmQ5Y2NmMDU0ZTNkZTIx
NTU2ZjAyN2EzMDg0NDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJp
emUuaApAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgY2Fz
ZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBSZXR1cm46CiAgICAgY2FzZSBVbnJlYWNoYWJsZToK
LSAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOgorICAgIGNhc2UgSW5jcmVtZW50VGllclVwQ291
bnRlckluTG9vcDoKICAgICBjYXNlIENoZWNrVGllclVwQXRSZXR1cm46CiAgICAgY2FzZSBDaGVj
a1RpZXJVcEFuZE9TUkVudGVyOgogICAgIGNhc2UgTG9vcEhpbnQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggMTExN2U3YWI0MzJiYTYwZWEwNzNmYTBhZmU5ODE5
YTI2ZjgxMTM0OC4uNTAwOTdkYzgwNDEzNDdlNGQwN2M5MjI2M2E2Mjg4MjNiOGI2NTc1OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBA
IGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFN0cmluZ0Zy
b21DaGFyQ29kZToKICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgIGNhc2UgRXh0cmFjdE9TUkVu
dHJ5TG9jYWw6Ci0gICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKKyAgICBjYXNlIEluY3JlbWVu
dFRpZXJVcENvdW50ZXJJbkxvb3A6CiAgICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgogICAg
IGNhc2UgQ2hlY2tUaWVyVXBBbmRPU1JFbnRlcjoKICAgICBjYXNlIExvb3BIaW50OgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYTNlMGEwMmY3YzJi
MTMzN2JhNzNhZWY1N2JhMTZhMjk4MGRhMTQ4Zi4uZWM5NWZhOTRiMWJhNDA2YjM0MmZhNGY1YjM1
OTM5Mjc2ZWYwNGM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCkBAIC0xMDg2LDcgKzEwODYsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEdldElu
ZGV4ZWRQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgICAgIGNhc2UgR2V0VHlwZWRBcnJheUJ5dGVPZmZz
ZXQ6CiAgICAgICAgIGNhc2UgTGFzdE5vZGVUeXBlOgotICAgICAgICBjYXNlIENoZWNrVGllclVw
SW5Mb29wOgorICAgICAgICBjYXNlIEluY3JlbWVudFRpZXJVcENvdW50ZXJJbkxvb3A6CiAgICAg
ICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVybjoKICAgICAgICAgY2FzZSBDaGVja1RpZXJVcEFu
ZE9TUkVudGVyOgogICAgICAgICBjYXNlIEludmFsaWRhdGlvblBvaW50OgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDJjZTc1YmNlYWI1NWQzY2UzZjY4ZTU1NDA1
ODdjYjZlYTVjMjY2ZTYuLmJlNTMzYWI5NDIyMmMzNmQ2N2Y4MmMxOWQ3MWQ0ZmRjODllOWM2NjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTg5LDcgKzg5LDcg
QEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKEV4dHJhY3RPU1JF
bnRyeUxvY2FsLCBOb2RlUmVzdWx0SlMpIFwKICAgICBcCiAgICAgLyogVGllci11cCBjaGVja3Mg
ZnJvbSB0aGUgREZHIHRvIHRoZSBGVEwuICovXAotICAgIG1hY3JvKENoZWNrVGllclVwSW5Mb29w
LCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oSW5jcmVtZW50VGllclVwQ291bnRlcklu
TG9vcCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrVGllclVwQW5kT1NSRW50
ZXIsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1RpZXJVcEF0UmV0dXJuLCBO
b2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCAwZmY1
YTM2MTMzNzU4OGExZjkxZDkxZTU5NThhYTNjODJhNGJjNGIyLi4zMzUyOTMyMDA4MTU2MGFmZWVh
NjUwMDQ4YTg3YmZjN2EwOWJhN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNTM3LDcg
KzUzNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICAgICAgY2Fz
ZSBBcnJheWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgotICAgICAgICBj
YXNlIENoZWNrVGllclVwSW5Mb29wOgorICAgICAgICBjYXNlIEluY3JlbWVudFRpZXJVcENvdW50
ZXJJbkxvb3A6CiAgICAgICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVybjoKICAgICAgICAgY2Fz
ZSBDaGVja1RpZXJVcEFuZE9TUkVudGVyOgogICAgICAgICBjYXNlIEludmFsaWRhdGlvblBvaW50
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA0
ZDhkNzRiMDlhNTg5NjM5YzgyOWI2NDgzOGY3ZWUyYjBlZWJmMzg2Li4xNmU2OTg4ZDc3NGQxNmIx
ZjNmODYwZDFmMTI2NWM4MjVhMWZjMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtMjQzLDcgKzI0Myw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0
ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAg
ICBjYXNlIE5ld1R5cGVkQXJyYXk6CiAgICAgY2FzZSBVbnJlYWNoYWJsZToKICAgICBjYXNlIEV4
dHJhY3RPU1JFbnRyeUxvY2FsOgotICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CisgICAgY2Fz
ZSBJbmNyZW1lbnRUaWVyVXBDb3VudGVySW5Mb29wOgogICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJl
dHVybjoKICAgICBjYXNlIENoZWNrVGllclVwQW5kT1NSRW50ZXI6CiAgICAgY2FzZSBMb29wSGlu
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCmluZGV4IDY2Nzg1YjE5NGYyNWIzMGM2ZDI5MDZmMGE4OTc1NmE1OGQ1YzQ4YzYu
LjUzODIxNGU0ZWYzYmMwZWE3NGMxNDdmYzFkNWUzNzhhZmM1NDRmYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAt
NDYwOCw3ICs0NjA4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgIGNhc2UgUGhpOgogICAgIGNhc2UgVXBzaWxvbjoKICAgICBjYXNlIEV4dHJhY3RPU1JF
bnRyeUxvY2FsOgotICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CisgICAgY2FzZSBJbmNyZW1l
bnRUaWVyVXBDb3VudGVySW5Mb29wOgogICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVybjoKICAg
ICBjYXNlIENoZWNrVGllclVwQW5kT1NSRW50ZXI6CiAgICAgY2FzZSBJbnQ1MlJlcDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDJhNzM2YmU1MGIwYWQ3OTc1ODZlYjA2NDNiZDc1ZTMzMDMxZDk5NGIuLjAzZmY2NjBhODI5ZTdl
NDZkZjliNzQ5MTYwYmIzOTU5NWNjNTY3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNDYyOCwyMSArNDYyOCwxMSBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogCiAjaWYgRU5B
QkxFKEZUTF9KSVQpICAgICAgICAKLSAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOiB7Ci0gICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5icmFuY2hBZGQzMigKLSAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpTaWduZWQsCi0gICAgICAgICAgICBUcnVzdGVkSW1tMzIo
T3B0aW9uczo6ZnRsVGllclVwQ291bnRlckluY3JlbWVudEZvckxvb3AoKSksCi0gICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6QWJzb2x1dGVBZGRyZXNzKCZtX2ppdC5qaXRDb2RlKCktPnRpZXJV
cENvdW50ZXIubV9jb3VudGVyKSk7Ci0gICAgICAgIAotICAgICAgICBzaWxlbnRTcGlsbEFsbFJl
Z2lzdGVycyhJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNFeGVj
U3RhdGUoKTsKLSAgICAgICAgYXBwZW5kQ2FsbCh0cmlnZ2VyVGllclVwTm93KTsKLSAgICAgICAg
c2lsZW50RmlsbEFsbFJlZ2lzdGVycyhJbnZhbGlkR1BSUmVnKTsKLSAgICAgICAgCi0gICAgICAg
IGRvbmUubGluaygmbV9qaXQpOworICAgIGNhc2UgSW5jcmVtZW50VGllclVwQ291bnRlckluTG9v
cDogeworICAgICAgICBtX2ppdC5hZGQzMihUcnVzdGVkSW1tMzIoT3B0aW9uczo6ZnRsVGllclVw
Q291bnRlckluY3JlbWVudEZvckxvb3AoKSksIE1hY3JvQXNzZW1ibGVyOjpBYnNvbHV0ZUFkZHJl
c3MoJm1faml0LmppdENvZGUoKS0+dGllclVwQ291bnRlci5tX2NvdW50ZXIpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQotICAgICAgICAKKwogICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVybjog
ewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9qaXQuYnJhbmNoQWRkMzIo
CiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6U2lnbmVkLApAQCAtNDY4Myw3ICs0NjczLDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVh
azsKICAgICB9CiAjZWxzZSAvLyBFTkFCTEUoRlRMX0pJVCkKLSAgICBjYXNlIENoZWNrVGllclVw
SW5Mb29wOgorICAgIGNhc2UgSW5jcmVtZW50VGllclVwQ291bnRlckluTG9vcDoKICAgICBjYXNl
IENoZWNrVGllclVwQXRSZXR1cm46CiAgICAgY2FzZSBDaGVja1RpZXJVcEFuZE9TUkVudGVyOgog
ICAgICAgICBERkdfQ1JBU0gobV9qaXQuZ3JhcGgoKSwgbm9kZSwgIlVuZXhwZWN0ZWQgdGllci11
cCBub2RlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJV
cENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
aWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAppbmRleCBjMjUzM2VmOWUyODI1M2JkNTJjM2M3
NjUwNDE3NWYxMzdmZThkMzE4Li4yNzMyMzMxNDVhYWYzZjFiNDU0NmMyYzAzNjVlMGZhNWYzMzNj
YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNr
SW5qZWN0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGll
clVwQ2hlY2tJbmplY3Rpb25QaGFzZS5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChsZXZlbCAhPSBGVEw6OkNhbkNvbXBp
bGVBbmRPU1JFbnRlciB8fCBvcmlnaW4uc2VtYW50aWMuaW5saW5lQ2FsbEZyYW1lKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAotICAgICAgICAgICAgICAg
ICAgICAgICAgbm9kZUluZGV4ICsgMSwgU3BlY05vbmUsIENoZWNrVGllclVwSW5Mb29wLCBvcmln
aW4pOworICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUluZGV4ICsgMSwgU3BlY05vbmUsIElu
Y3JlbWVudFRpZXJVcENvdW50ZXJJbkxvb3AsIG9yaWdpbik7CiAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAKQEAgLTk0LDcgKzk0
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICghaXNB
dFRvcCkgewogICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG5vZGVJbmRleCArIDEsIFNwZWNOb25lLCBDaGVja1RpZXJV
cEluTG9vcCwgb3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJbmRleCArIDEs
IFNwZWNOb25lLCBJbmNyZW1lbnRUaWVyVXBDb3VudGVySW5Mb29wLCBvcmlnaW4pOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>