<?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>88206</bug_id>
          
          <creation_ts>2012-06-03 19:30:49 -0700</creation_ts>
          <short_desc>DFG arguments simplification should have rationalized handling of TearOffArguments</short_desc>
          <delta_ts>2012-06-04 17:29:03 -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>640268</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-06-03 19:30:49 -0700</bug_when>
    <thetext>Here&apos;s what should happen: the existence of TearOffArguments should have no effect on the conclusion reached by arguments simplification.  Optimally, arguments simplification should eliminate the TearOffArguments opcode in those cases where it eliminates arguments creation.  But that&apos;s not necessary for correctness.

Currently, arguments simplification completely ignores TearOffArguments because it neglects to consider accesses to the unmodified arguments register.  By some manner of dumb luck, this ends up &quot;just working&quot; because TearOffArguments is the only opcode that would explicitly read the unmodified arguments register.  Of course, it works in a sub-optimal way, because the TearOffArguments op ends up still being emitted.

This code should be rationalized and made to work in a sensible way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640272</commentid>
    <comment_count>1</comment_count>
      <attachid>145506</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-06-03 19:39:36 -0700</bug_when>
    <thetext>Created attachment 145506
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640319</commentid>
    <comment_count>2</comment_count>
      <attachid>145506</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-06-03 22:29:03 -0700</bug_when>
    <thetext>Comment on attachment 145506
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641027</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-06-04 17:29:03 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/119444</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145506</attachid>
            <date>2012-06-03 19:39:36 -0700</date>
            <delta_ts>2012-06-03 22:29:03 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>cleanupargs_patch_1.diff</filename>
            <type>text/plain</type>
            <size>4051</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE5MzY2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDEyLTA2LTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIGFyZ3VtZW50cyBzaW1wbGlmaWNhdGlvbiBzaG91bGQgaGF2ZSByYXRpb25hbGl6ZWQgaGFu
ZGxpbmcgb2YgVGVhck9mZkFyZ3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODgyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIC0gQWNjZXNzZXMgdG8gdGhlIHVubW9kaWZpZWQgYXJn
dW1lbnRzIHJlZ2lzdGVyIG91Z2h0IHRvIGhhdmUgdGhlIHNhbWUgZWZmZWN0IG9uCisgICAgICAg
ICAgYWxpYXMvZXNjYXBlIGFuYWx5c2lzIG9mIGFyZ3VtZW50cyBhcyBhY2Nlc3NlcyB0byB0aGUg
bXV0YWJsZSBhcmd1bWVudHMgcmVnaXN0ZXIuCisgICAgICAgIAorICAgICAgICAtIFRoZSBleGlz
dGVuY2Ugb2YgVGVhck9mZkFyZ3VtZW50cyBzaG91bGQgbm90IGdldCBpbiB0aGUgd2F5IG9mIGFy
Z3VtZW50cyBhbGlhc2luZy4KKyAgICAgICAgCisgICAgICAgIC0gVGVhck9mZkFyZ3VtZW50cyBz
aG91bGQgYmUgZWxpbWluYXRlZCBpZiBDcmVhdGVBcmd1bWVudHMgaXMgZWxpbWluYXRlZC4KKwor
ICAgICAgICAqIGRmZy9ERkdBcmd1bWVudHNTaW1wbGlmaWNhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpBcmd1bWVudHNTaW1wbGlmaWNhdGlvblBoYXNlOjpydW4pOgorICAgICAg
ICAoSlNDOjpERkc6OkFyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2U6Om9ic2VydmVCYWRBcmd1
bWVudHNVc2UpOgorCiAyMDEyLTA2LTAyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5j
b20+CiAKICAgICAgICAgV2VhayBwb2ludGVyIGZpbmFsaXphdGlvbiBzaG91bGQgYmUgbGF6eQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNTaW1wbGlmaWNhdGlv
blBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fy
Z3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxMTkzNjYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c1NpbXBsaWZpY2F0aW9uUGhhc2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNiArMTcwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBjYXNlIFRlYXJPZmZBcmd1bWVudHM6IHsKKyAgICAgICAgICAgICAg
ICAgICAgLy8gSWdub3JlIGFyZ3VtZW50cyB0ZWFyIG9mZiwgYmVjYXVzZSBpdCdzIG9ubHkgcmVs
ZXZhbnQgaWYgd2UgYWN0dWFsbHkKKyAgICAgICAgICAgICAgICAgICAgLy8gbmVlZCB0byBjcmVh
dGUgdGhlIGFyZ3VtZW50cy4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBjYXNlIFNldExv
Y2FsOiB7CiAgICAgICAgICAgICAgICAgICAgIE5vZGUmIHNvdXJjZSA9IG1fZ3JhcGhbbm9kZS5j
aGlsZDEoKV07CiAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFi
bGVBY2Nlc3NEYXRhID0gbm9kZS52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKQEAgLTE5Myw5ICsxOTks
MTAgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
IGludCBhcmd1bWVudHNSZWdpc3RlciA9CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBo
LnVuY2hlY2tlZEFyZ3VtZW50c1JlZ2lzdGVyRm9yKG5vZGUuY29kZU9yaWdpbik7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICh2YXJpYWJsZUFjY2Vzc0RhdGEtPmxvY2FsKCkgPT0gYXJndW1lbnRz
UmVnaXN0ZXIKLSAgICAgICAgICAgICAgICAgICAgICAgIHx8IHZhcmlhYmxlQWNjZXNzRGF0YS0+
bG9jYWwoKSA9PQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVubW9kaWZpZWRBcmd1bWVu
dHNSZWdpc3Rlcihhcmd1bWVudHNSZWdpc3RlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGFyZ3VtZW50c1JlZ2lzdGVyICE9IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICYmICh2YXJpYWJsZUFjY2Vzc0RhdGEtPmxvY2FsKCkgPT0gYXJndW1lbnRz
UmVnaXN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB2YXJpYWJsZUFjY2Vzc0Rh
dGEtPmxvY2FsKCkgPT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5tb2RpZmll
ZEFyZ3VtZW50c1JlZ2lzdGVyKGFyZ3VtZW50c1JlZ2lzdGVyKSkpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChub2RlLmNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lID09IHNvdXJjZS5j
b2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3JlYXRlc0FyZ3VtZW50cy5hZGQoc291
cmNlLmNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKTsKQEAgLTU3Myw2ICs1ODAsMTYgQEAgcHVi
bGljOgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNhc2UgVGVhck9mZkFyZ3VtZW50czog
eworICAgICAgICAgICAgICAgICAgICBpZiAobV9jcmVhdGVzQXJndW1lbnRzLmNvbnRhaW5zKG5v
ZGUuY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBub2Rl
LnNldE9wQW5kRGVmYXVsdEZsYWdzKE5vcCk7CisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgu
Y2xlYXJBbmREZXJlZkNoaWxkMShub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRS
ZWZDb3VudCgwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC02MzYsNyArNjUzLDEw
IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEdldExv
Y2FsOiB7Ci0gICAgICAgICAgICBpZiAoY2hpbGQubG9jYWwoKSA9PSBtX2dyYXBoLnVuY2hlY2tl
ZEFyZ3VtZW50c1JlZ2lzdGVyRm9yKGNoaWxkLmNvZGVPcmlnaW4pKSB7CisgICAgICAgICAgICBp
bnQgYXJndW1lbnRzUmVnaXN0ZXIgPSBtX2dyYXBoLnVuY2hlY2tlZEFyZ3VtZW50c1JlZ2lzdGVy
Rm9yKGNoaWxkLmNvZGVPcmlnaW4pOworICAgICAgICAgICAgaWYgKGFyZ3VtZW50c1JlZ2lzdGVy
ICE9IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIKKyAgICAgICAgICAgICAgICAmJiAoY2hpbGQubG9j
YWwoKSA9PSBhcmd1bWVudHNSZWdpc3RlcgorICAgICAgICAgICAgICAgICAgICB8fCBjaGlsZC5s
b2NhbCgpID09IHVubW9kaWZpZWRBcmd1bWVudHNSZWdpc3Rlcihhcmd1bWVudHNSZWdpc3Rlcikp
KSB7CiAgICAgICAgICAgICAgICAgbV9jcmVhdGVzQXJndW1lbnRzLmFkZChjaGlsZC5jb2RlT3Jp
Z2luLmlubGluZUNhbGxGcmFtZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9Cg==
</data>
<flag name="review"
          id="152626"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>