<?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>150570</bug_id>
          
          <creation_ts>2015-10-26 12:31:40 -0700</creation_ts>
          <short_desc>Add logging to warn about under-estimated FTL inline cache sizes.</short_desc>
          <delta_ts>2015-10-26 14:47:16 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1136595</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-26 12:31:40 -0700</bug_when>
    <thetext>This makes it a little more convenient to check if something has changed and if we need to re-calibrate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136597</commentid>
    <comment_count>1</comment_count>
      <attachid>264062</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-26 12:35:11 -0700</bug_when>
    <thetext>Created attachment 264062
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136603</commentid>
    <comment_count>2</comment_count>
      <attachid>264062</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-26 12:55:50 -0700</bug_when>
    <thetext>Comment on attachment 264062
the patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=264062&amp;action=review

&gt; Source/JavaScriptCore/ftl/FTLCompile.cpp:177
&gt; +    if (verboseCompilationEnabled()) {
&gt; +        static size_t maxSize = 0;
&gt; +        if (maxSize &lt; actualCodeSize)
&gt; +            maxSize = actualCodeSize;
&gt; +        dataLogF(&quot;ALERT: Under-estimated FTL Inline Cache Size for %s: estimated %zu, actual %zu, max %zu\n&quot;, codeDescription, sizeOfInlineCode, actualCodeSize, maxSize);
&gt; +    }

I&apos;d like to be able to use this tool to figure out if we have undersized ICs by running benchmarks. But verbose compilation and dumping to stdout would fall over for benchmarks.

Can we log and then crash, with a special option dedicated to this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136606</commentid>
    <comment_count>3</comment_count>
      <attachid>264062</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-26 13:03:42 -0700</bug_when>
    <thetext>Comment on attachment 264062
the patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=264062&amp;action=review

&gt;&gt; Source/JavaScriptCore/ftl/FTLCompile.cpp:177
&gt;&gt; +    }
&gt; 
&gt; I&apos;d like to be able to use this tool to figure out if we have undersized ICs by running benchmarks. But verbose compilation and dumping to stdout would fall over for benchmarks.
&gt; 
&gt; Can we log and then crash, with a special option dedicated to this?

I&apos;ll add 2 options:
1. assertICSizes - will crash if IC size is inadequate.  Useful for the automated regression test case (e.g. when running benchmarks).
2. dumpFailedICSizing - will dump to stdout and continue.  Useful for finding the max size of new ICs being added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136636</commentid>
    <comment_count>4</comment_count>
      <attachid>264077</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-26 14:34:59 -0700</bug_when>
    <thetext>Created attachment 264077
Patch for landing.

Also added comments in the ChangeLog to describe how to use these options.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136639</commentid>
    <comment_count>5</comment_count>
      <attachid>264077</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-26 14:45:52 -0700</bug_when>
    <thetext>Comment on attachment 264077
Patch for landing.

View in context: https://bugs.webkit.org/attachment.cgi?id=264077&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        1. JSC_dumpFailedICSizing - dumps an error message if the FTL encounters an
&gt; +           IC size estimates that are less than the actual needed code size.

&quot;encounters an IC size estimates&quot; ==&gt; &quot;encounters IC size estimates&quot;.  Will fix before landing.

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +           This option is useful for when we add a new IC and want to compute estimate
&gt; +           sizes for the IC.  To do this:

&quot;compute estimate sizes for&quot; ==&gt; &quot;compute an estimated size for&quot;.  Will fix before landing.

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +           2. Implement a test suite with scenarios that exercises all the code paths in

&quot;exercises&quot; ==&gt; &quot;exercise&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136641</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-26 14:47:16 -0700</bug_when>
    <thetext>Landed in r191602: &lt;http://trac.webkit.org/r191602&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264062</attachid>
            <date>2015-10-26 12:35:11 -0700</date>
            <delta_ts>2015-10-26 14:34:59 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-150570.patch</filename>
            <type>text/plain</type>
            <size>1624</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxNTkzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE1LTEwLTI2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgbG9nZ2luZyB0byB3YXJuIGFib3V0IHVuZGVyLWVzdGltYXRlZCBGVEwgaW5saW5lIGNhY2hl
IHNpemVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUwNTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmdGwvRlRMQ29tcGlsZS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Z2VuZXJhdGVJbmxpbmVJ
ZlBvc3NpYmxlT3V0T2ZMaW5lSWZOb3QpOgorCiAyMDE1LTEwLTI0ICBCcmlhbiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFRlYWNoIGNyZWF0ZV9oYXNoX3RhYmxlIHRvIG9taXQg
YnVpbHRpbnMgbWFjcm9zIHdoZW4gZ2VuZXJhdGluZyB0YWJsZXMgZm9yIG5hdGl2ZS1vbmx5IG9i
amVjdHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkocmV2
aXNpb24gMTkxNTkyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTY5LDYgKzE2OSwxMyBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0
ZUlubGluZUlmUG9zc2libGVPdXRPCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAo
dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKSB7CisgICAgICAgIHN0YXRpYyBzaXplX3QgbWF4
U2l6ZSA9IDA7CisgICAgICAgIGlmIChtYXhTaXplIDwgYWN0dWFsQ29kZVNpemUpCisgICAgICAg
ICAgICBtYXhTaXplID0gYWN0dWFsQ29kZVNpemU7CisgICAgICAgIGRhdGFMb2dGKCJBTEVSVDog
VW5kZXItZXN0aW1hdGVkIEZUTCBJbmxpbmUgQ2FjaGUgU2l6ZSBmb3IgJXM6IGVzdGltYXRlZCAl
enUsIGFjdHVhbCAlenUsIG1heCAlenVcbiIsIGNvZGVEZXNjcmlwdGlvbiwgc2l6ZU9mSW5saW5l
Q29kZSwgYWN0dWFsQ29kZVNpemUsIG1heFNpemUpOworICAgIH0KKwogICAgIC8vIElmIHRoZXJl
IGlzbid0IGVub3VnaCBzcGFjZSBpbiB0aGUgcHJvdmlkZWQgaW5saW5lIGNvZGUgYXJlYSwgYWxs
b2NhdGUgb3V0IG9mIGxpbmUKICAgICAvLyBleGVjdXRhYmxlIG1lbW9yeSB0byBsaW5rIHRoZSBw
cm92aWRlZCBjb2RlLiBQbGFjZSBhIGp1bXAgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUKICAgICAv
LyBpbmxpbmUgYXJlYSBhbmQganVtcCB0byB0aGUgb3V0IG9mIGxpbmUgY29kZS4gU2ltaWxhcmx5
IHJldHVybiBieSBhcHBlbmRpbmcgYSBqdW1wCg==
</data>
<flag name="review"
          id="289194"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="289195"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264077</attachid>
            <date>2015-10-26 14:34:59 -0700</date>
            <delta_ts>2015-10-26 14:34:59 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-150570.patch</filename>
            <type>text/plain</type>
            <size>3878</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxNTk5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBA
CisyMDE1LTEwLTI2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgbG9nZ2luZyB0byB3YXJuIGFib3V0IHVuZGVyLWVzdGltYXRlZCBGVEwgaW5saW5lIGNhY2hl
IHNpemVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUwNTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAg
QWRkZWQgMiBvcHRpb25zOgorICAgICAgICAxLiBKU0NfZHVtcEZhaWxlZElDU2l6aW5nIC0gZHVt
cHMgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgRlRMIGVuY291bnRlcnMgYW4KKyAgICAgICAgICAg
SUMgc2l6ZSBlc3RpbWF0ZXMgdGhhdCBhcmUgbGVzcyB0aGFuIHRoZSBhY3R1YWwgbmVlZGVkIGNv
ZGUgc2l6ZS4KKworICAgICAgICAgICBUaGlzIG9wdGlvbiBpcyB1c2VmdWwgZm9yIHdoZW4gd2Ug
YWRkIGEgbmV3IElDIGFuZCB3YW50IHRvIGNvbXB1dGUgZXN0aW1hdGUKKyAgICAgICAgICAgc2l6
ZXMgZm9yIHRoZSBJQy4gIFRvIGRvIHRoaXM6CisgICAgICAgICAgIDEuIEJ1aWxkIGpzYyBmb3Ig
dGhlIHRhcmdldCBwb3J0IHdpdGggYSB2ZXJ5IHNtYWxsIElDIHNpemUgKGVub3VnaCB0bworICAg
ICAgICAgICAgICBzdG9yZSB0aGUganVtcCBpbnN0cnVjdGlvbiBuZWVkZWQgZm9yIHRoZSBvdXQg
b2YgbGluZSBmYWxsYmFjaworICAgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbikuCisgICAgICAg
ICAgIDIuIEltcGxlbWVudCBhIHRlc3Qgc3VpdGUgd2l0aCBzY2VuYXJpb3MgdGhhdCBleGVyY2lz
ZXMgYWxsIHRoZSBjb2RlIHBhdGhzIGluCisgICAgICAgICAgICAgIHRoZSBJQyBnZW5lcmF0b3Iu
CisgICAgICAgICAgIDMuIFJ1biBqc2Mgd2l0aCBKU0NfZHVtcEZhaWxlZElDU2l6aW5nPXRydWUg
b24gdGhlIHRlc3Qgc3VpdGUuCisgICAgICAgICAgIDQuIFRoZSBtYXggdmFsdWUgcmVwb3J0ZWQg
YnkgdGhlIGR1bXBzIHdpbGwgYmUgdGhlIHdvcnN0IGNhc2Ugc2l6ZSBuZWVkZWQgdG8KKyAgICAg
ICAgICAgICAgc3RvcmUgdGhlIElDLiAgV2Ugc2hvdWxkIHVzZSB0aGlzIHZhbHVlIGZvciBvdXIg
ZXN0aW1hdGUuCisgICAgICAgICAgIDUuIFVwZGF0ZSB0aGUgSUMncyBlc3RpbWF0ZWQgc2l6ZSBh
bmQgcmVidWlsZCBqc2MuCisgICAgICAgICAgIDYuIFJlLXJ1biAoMykgYW5kIGNvbmZpcm0gdGhh
dCB0aGVyZSBhcmUgbm8gbW9yZSBlcnJvciBtZXNzYWdlcyBhYm91dCB0aGUKKyAgICAgICAgICAg
ICAgSUMgc2l6aW5nLgorCisgICAgICAgIDIuIEpTQ19hc3NlcnRJQ1NpemluZyAtIHNhbWUgYXMg
SlNDX2R1bXBGYWlsZWRJQ1NpemluZyBleGNlcHQgdGhhdCBpdCBhbHNvCisgICAgICAgICAgIGNy
YXNoZXMgdGhlIFZNIGVhY2ggdGltZSBpdCBlbmNvdW50ZXJzIGFuIGluYWRlcXVhdGUgSUMgc2l6
ZSBlc3RpbWF0ZS4KKworICAgICAgICAgICBUaGlzIG9wdGlvbiBpcyB1c2VmdWwgZm9yIHJlZ3Jl
c3Npb24gdGVzdGluZyB0byBlbnN1cmUgdGhhdCBvdXIgZXN0aW1hdGVzCisgICAgICAgICAgIGRv
IG5vdCByZWdyZXNzLgorCisgICAgICAgICogZnRsL0ZUTENvbXBpbGUuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OmdlbmVyYXRlSW5saW5lSWZQb3NzaWJsZU91dE9mTGluZUlmTm90KToKKyAgICAg
ICAgKiBydW50aW1lL09wdGlvbnMuaDoKKwogMjAxNS0xMC0yNiAgU2FhbSBiYXJhdGkgIDxzYmFy
YXRpQGFwcGxlLmNvbT4KIAogICAgICAgICByMTkwNzM1IENhdXNlZCB1cyB0byBtYXliZSB0cmFt
cGxlIHRoZSBiYXNlJ3MgdGFnLUdQUiBvbiAzMi1iaXQgaW5saW5lIGNhY2hlIHdoZW4gdGhlIGNh
Y2hlIGFsbG9jYXRlcyBhIHNjcmF0Y2ggcmVnaXN0ZXIgYW5kIHRoZW4ganVtcHMgdG8gdGhlIHNs
b3cgcGF0aApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCShy
ZXZpc2lvbiAxOTE1OTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNiArMTY5LDE1IEBAIHN0YXRpYyB2b2lkIGdlbmVy
YXRlSW5saW5lSWZQb3NzaWJsZU91dE8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlm
IChPcHRpb25zOjphc3NlcnRJQ1NpemluZygpIHx8IE9wdGlvbnM6OmR1bXBGYWlsZWRJQ1Npemlu
ZygpKSB7CisgICAgICAgIHN0YXRpYyBzaXplX3QgbWF4U2l6ZSA9IDA7CisgICAgICAgIGlmICht
YXhTaXplIDwgYWN0dWFsQ29kZVNpemUpCisgICAgICAgICAgICBtYXhTaXplID0gYWN0dWFsQ29k
ZVNpemU7CisgICAgICAgIGRhdGFMb2dGKCJBTEVSVDogVW5kZXItZXN0aW1hdGVkIEZUTCBJbmxp
bmUgQ2FjaGUgU2l6ZSBmb3IgJXM6IGVzdGltYXRlZCAlenUsIGFjdHVhbCAlenUsIG1heCAlenVc
biIsIGNvZGVEZXNjcmlwdGlvbiwgc2l6ZU9mSW5saW5lQ29kZSwgYWN0dWFsQ29kZVNpemUsIG1h
eFNpemUpOworICAgICAgICBpZiAoT3B0aW9uczo6YXNzZXJ0SUNTaXppbmcoKSkKKyAgICAgICAg
ICAgIENSQVNIKCk7CisgICAgfQorCiAgICAgLy8gSWYgdGhlcmUgaXNuJ3QgZW5vdWdoIHNwYWNl
IGluIHRoZSBwcm92aWRlZCBpbmxpbmUgY29kZSBhcmVhLCBhbGxvY2F0ZSBvdXQgb2YgbGluZQog
ICAgIC8vIGV4ZWN1dGFibGUgbWVtb3J5IHRvIGxpbmsgdGhlIHByb3ZpZGVkIGNvZGUuIFBsYWNl
IGEganVtcCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQogICAgIC8vIGlubGluZSBhcmVhIGFuZCBq
dW1wIHRvIHRoZSBvdXQgb2YgbGluZSBjb2RlLiBTaW1pbGFybHkgcmV0dXJuIGJ5IGFwcGVuZGlu
ZyBhIGp1bXAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHJl
dmlzaW9uIDE5MTU5NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjgwLDYgKzI4MCw5IEBAIHR5cGVkZWYgY29uc3QgY2hhciog
b3B0aW9uU3RyaW5nOwogICAgIFwKICAgICB2KHVuc2lnbmVkLCByZW9wdGltaXphdGlvblJldHJ5
Q291bnRlck1heCwgMCwgbnVsbHB0cikgIFwKICAgICBcCisgICAgdihib29sLCBhc3NlcnRJQ1Np
emluZywgZmFsc2UsICJjcmFzaCBpZiBlc3RpbWF0ZWQgSUMgc2l6ZXMgYXJlIGluYWRlcXVhdGUi
KSAgXAorICAgIHYoYm9vbCwgZHVtcEZhaWxlZElDU2l6aW5nLCBmYWxzZSwgImR1bXBzIGEgbG9n
IGVudHJ5IGlmIGVzdGltYXRlZCBJQyBzaXplcyBhcmUgaW5hZGVxdWF0ZSIpICBcCisgICAgXAog
ICAgIHYodW5zaWduZWQsIG1pbmltdW1PcHRpbWl6YXRpb25EZWxheSwgMSwgbnVsbHB0cikgXAog
ICAgIHYodW5zaWduZWQsIG1heGltdW1PcHRpbWl6YXRpb25EZWxheSwgNSwgbnVsbHB0cikgXAog
ICAgIHYoZG91YmxlLCBkZXNpcmVkUHJvZmlsZUxpdmVuZXNzUmF0ZSwgMC43NSwgbnVsbHB0cikg
XAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>