<?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>86059</bug_id>
          
          <creation_ts>2012-05-09 23:06:12 -0700</creation_ts>
          <short_desc>DFG should allow inlining in case of certain arity mismatches</short_desc>
          <delta_ts>2012-05-23 00:55:07 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>620266</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-09 23:06:12 -0700</bug_when>
    <thetext>Currently we disallow inlining in case of arity mismatch. This made sense when we were passing arguments in the wrong order, since arity mismatch calls required some call frame ninja work, and it seemed like adding this to the inliner would be sufficiently complex that avoiding it would reduce the bug tail.

But now that we&apos;re passing arguments in the right order, inlining calls that pass too many arguments is trivial. There simply isn&apos;t anything standing in the way of us doing this. The value recoveries in the inline call frame already do the right things (they track the arguments passed, not the parameters expected). The argument flushing does the right things (it places the arguments where they should be and makes sure that they are really stored to the stack). The rest of the inlining machinery already computes the stack offset correctly.

So while it&apos;s still the case that arity mismatches where too few arguments are passed are hard to inline, the ones that involve too many args are trivial and we should just inline those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620269</commentid>
    <comment_count>1</comment_count>
      <attachid>141089</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-09 23:07:58 -0700</bug_when>
    <thetext>Created attachment 141089
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620286</commentid>
    <comment_count>2</comment_count>
      <attachid>141089</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-05-09 23:38:43 -0700</bug_when>
    <thetext>Comment on attachment 141089
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620347</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-10 00:52:52 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/116620</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631354</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-23 00:54:57 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/118144</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631356</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-23 00:55:07 -0700</bug_when>
    <thetext>Excuse me, merged in http://trac.webkit.org/changeset/118144</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141089</attachid>
            <date>2012-05-09 23:07:58 -0700</date>
            <delta_ts>2012-05-09 23:38:43 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>inline_arity_mismatch_patch_1.diff</filename>
            <type>text/plain</type>
            <size>2662</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE2NjA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDEyLTA1LTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBhbGxvdyBpbmxpbmluZyBpbiBjYXNlIG9mIGNlcnRhaW4gYXJpdHkgbWlzbWF0
Y2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYw
NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJz
ZXI6OmhhbmRsZUlubGluaW5nKToKKwogMjAxMi0wNS0wOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9A
YXBwbGUuY29tPgogCiAgICAgICAgIERGRyB2YXJpYWJsZSBjYXB0dXJlIGFuYWx5c2lzIHNob3Vs
ZCB3b3JrIGV2ZW4gaWYgdGhlIHZhcmlhYmxlcyBhcm9zZSB0aHJvdWdoIGlubGluaW5nCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAko
cmV2aXNpb24gMTE2NjA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTYsOSArMTExNiwxMCBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhib29sCiAgICAgCiAgICAgRnVuY3Rpb25FeGVj
dXRhYmxlKiBleGVjdXRhYmxlID0gZXhwZWN0ZWRGdW5jdGlvbi0+anNFeGVjdXRhYmxlKCk7CiAg
ICAgCi0gICAgLy8gRG9lcyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB3ZSdyZSBwYXNzaW5nIG1h
dGNoIHRoZSBhcml0eSBvZiB0aGUgdGFyZ2V0PyBXZSBjb3VsZAotICAgIC8vIGlubGluZSBhcml0
eSBjaGVjayBmYWlsdXJlcywgYnV0IGZvciBzaW1wbGljaXR5IHdlIGN1cnJlbnRseSBkb24ndC4K
LSAgICBpZiAoc3RhdGljX2Nhc3Q8aW50PihleGVjdXRhYmxlLT5wYXJhbWV0ZXJDb3VudCgpKSAr
IDEgIT0gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpCisgICAgLy8gRG9lcyB0aGUgbnVtYmVy
IG9mIGFyZ3VtZW50cyB3ZSdyZSBwYXNzaW5nIG1hdGNoIHRoZSBhcml0eSBvZiB0aGUgdGFyZ2V0
PyBXZSBjdXJyZW50bHkKKyAgICAvLyBpbmxpbmUgb25seSBpZiB0aGUgbnVtYmVyIG9mIGFyZ3Vt
ZW50cyBwYXNzZWQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIKKyAgICAv
LyBhcmd1bWVudHMgZXhwZWN0ZWQuCisgICAgaWYgKHN0YXRpY19jYXN0PGludD4oZXhlY3V0YWJs
ZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICAvLyBIYXZlIHdlIGV4Y2VlZGVkIGlubGlu
ZSBzdGFjayBkZXB0aCwgb3IgYXJlIHdlIHRyeWluZyB0byBpbmxpbmUgYSByZWN1cnNpdmUgY2Fs
bD8KQEAgLTExODMsOCArMTE4NCwxMSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxp
bmluZyhib29sCiAgICAgSW5saW5lU3RhY2tFbnRyeSBpbmxpbmVTdGFja0VudHJ5KHRoaXMsIGNv
ZGVCbG9jaywgcHJvZmlsZWRCbG9jaywgbV9ncmFwaC5tX2Jsb2Nrcy5zaXplKCkgLSAxLCAoVmly
dHVhbFJlZ2lzdGVyKW1faW5saW5lU3RhY2tUb3AtPnJlbWFwT3BlcmFuZChjYWxsVGFyZ2V0KSwg
ZXhwZWN0ZWRGdW5jdGlvbiwgKFZpcnR1YWxSZWdpc3RlciltX2lubGluZVN0YWNrVG9wLT5yZW1h
cE9wZXJhbmQodXNlc1Jlc3VsdCA/IHJlc3VsdE9wZXJhbmQgOiBJbnZhbGlkVmlydHVhbFJlZ2lz
dGVyKSwgKFZpcnR1YWxSZWdpc3RlcilpbmxpbmVDYWxsRnJhbWVTdGFydCwga2luZCk7CiAgICAg
CiAgICAgLy8gTGluayB1cCB0aGUgYXJndW1lbnQgdmFyaWFibGUgYWNjZXNzIGRhdGFzIHRvIHRo
ZWlyIGFyZ3VtZW50IHBvc2l0aW9ucy4KLSAgICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzOyArK2kpCisgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBhcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpczsgKytpKSB7CisgICAgICAgIGlmIChzdGF0aWNfY2FzdDxzaXpl
X3Q+KGkpID49IGlubGluZVN0YWNrRW50cnkubV9hcmd1bWVudFBvc2l0aW9ucy5zaXplKCkpCisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgaW5saW5lU3RhY2tFbnRyeS5tX2FyZ3VtZW50UG9z
aXRpb25zW2ldLT5hZGRWYXJpYWJsZShhcmd1bWVudHNbaSAtIDFdKTsKKyAgICB9CiAgICAgCiAg
ICAgLy8gVGhpcyBpcyB3aGVyZSB0aGUgYWN0dWFsIGlubGluaW5nIHJlYWxseSBoYXBwZW5zLgog
ICAgIHVuc2lnbmVkIG9sZEluZGV4ID0gbV9jdXJyZW50SW5kZXg7Cg==
</data>
<flag name="review"
          id="147173"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>