<?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>141398</bug_id>
          
          <creation_ts>2015-02-09 13:25:26 -0800</creation_ts>
          <short_desc>DFG call codegen should resolve the callee operand as late as possible</short_desc>
          <delta_ts>2015-02-09 15:40:42 -0800</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>
          
          <blocked>141332</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1067891</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-09 13:25:26 -0800</bug_when>
    <thetext>This will make it easier to structure https://bugs.webkit.org/show_bug.cgi?id=141332.  I want to do this separately to make sure that there aren&apos;t any hidden gremlins in the ordering.  Intuitively, this change shouldn&apos;t affect performance, although the only hypothetical cases I can think of where codegen would be affected, this change would be a progression.  Right now in trunk we lock down the register for the callee before doing anything else, and so we might spill one of the arguments to do this.  Then we would have to refill the argument into something else.  With this change, we get at the callee last, so the argument would stay in a register.  We might spill and refill the callee in the process with this change, but in any case where such a conflict occured, then without the change we would be spilling and then filling some argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067892</commentid>
    <comment_count>1</comment_count>
      <attachid>246284</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-09 13:28:00 -0800</bug_when>
    <thetext>Created attachment 246284
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067893</commentid>
    <comment_count>2</comment_count>
      <attachid>246284</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-09 13:31:04 -0800</bug_when>
    <thetext>Comment on attachment 246284
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067944</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-09 15:40:42 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/179851</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246284</attachid>
            <date>2015-02-09 13:28:00 -0800</date>
            <delta_ts>2015-02-09 13:31:04 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>4421</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5ODQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDE1LTAyLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIGNhbGwgY29kZWdlbiBzaG91bGQgcmVzb2x2ZSB0aGUgY2FsbGVlIG9wZXJhbmQgYXMgbGF0
ZSBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQxMzk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBUaGlzIGlzIG1vc3RseSBhIGJlbmlnbiByZXN0cnVjdHVyaW5nIHRvIGhl
bHAgd2l0aCB0aGUgaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTMzMi4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1p
dENhbGwpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgorCiAyMDE1LTAyLTA4ICBGaWxp
cCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIHNob3VsZCBvbmx5IGhh
dmUgdHdvIG1lY2hhbmlzbXMgZm9yIGRlc2NyaWJpbmcgZWZmZWN0ZnVsbmVzcyBvZiBub2Rlczsg
cHJldmlvdXNseSB0aGVyZSB3ZXJlIHRocmVlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE3OTgz
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY0OSwxMCArNjQ5LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6ZW1pdENhbGwoTm9kZSogbm9kZQogICAgIENhbGxMaW5rSW5mbzo6Q2FsbFR5cGUgY2FsbFR5
cGUgPSBpc0NhbGwgPyBDYWxsTGlua0luZm86OkNhbGwgOiBDYWxsTGlua0luZm86OkNvbnN0cnVj
dDsKIAogICAgIEVkZ2UgY2FsbGVlRWRnZSA9IG1faml0LmdyYXBoKCkubV92YXJBcmdDaGlsZHJl
bltub2RlLT5maXJzdENoaWxkKCldOwotICAgIEpTVmFsdWVPcGVyYW5kIGNhbGxlZSh0aGlzLCBj
YWxsZWVFZGdlKTsKLSAgICBHUFJSZWcgY2FsbGVlVGFnR1BSID0gY2FsbGVlLnRhZ0dQUigpOwot
ICAgIEdQUlJlZyBjYWxsZWVQYXlsb2FkR1BSID0gY2FsbGVlLnBheWxvYWRHUFIoKTsKLSAgICB1
c2UoY2FsbGVlRWRnZSk7CiAKICAgICAvLyBUaGUgY2FsbCBpbnN0cnVjdGlvbidzIGZpcnN0IGNo
aWxkIGlzIGVpdGhlciB0aGUgZnVuY3Rpb24gKG5vcm1hbCBjYWxsKSBvciB0aGUKICAgICAvLyBy
ZWNlaXZlciAobWV0aG9kIGNhbGwpLiBzdWJzZXF1ZW50IGNoaWxkcmVuIGFyZSB0aGUgYXJndW1l
bnRzLgpAQCAtNjYxLDggKzY1Nyw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5v
ZGUqIG5vZGUKICAgICBpbnQgbnVtQXJncyA9IG51bVBhc3NlZEFyZ3MgKyBkdW1teVRoaXNBcmd1
bWVudDsKIAogICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihu
dW1BcmdzKSwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7
Ci0gICAgbV9qaXQuc3RvcmUzMihjYWxsZWVQYXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBheWxvYWRT
bG90KEpTU3RhY2s6OkNhbGxlZSkpOwotICAgIG1faml0LnN0b3JlMzIoY2FsbGVlVGFnR1BSLCBj
YWxsZWVGcmFtZVRhZ1Nsb3QoSlNTdGFjazo6Q2FsbGVlKSk7CiAKICAgICBmb3IgKGludCBpID0g
MDsgaSA8IG51bVBhc3NlZEFyZ3M7IGkrKykgewogICAgICAgICBFZGdlIGFyZ0VkZ2UgPSBtX2pp
dC5ncmFwaCgpLm1fdmFyQXJnQ2hpbGRyZW5bbm9kZS0+Zmlyc3RDaGlsZCgpICsgMSArIGldOwpA
QCAtNjc1LDYgKzY2OSwxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2RlKiBu
b2RlCiAgICAgICAgIG1faml0LnN0b3JlMzIoYXJnUGF5bG9hZEdQUiwgY2FsbGVlQXJndW1lbnRQ
YXlsb2FkU2xvdChpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKICAgICB9CiAKKyAgICBKU1ZhbHVl
T3BlcmFuZCBjYWxsZWUodGhpcywgY2FsbGVlRWRnZSk7CisgICAgR1BSUmVnIGNhbGxlZVRhZ0dQ
UiA9IGNhbGxlZS50YWdHUFIoKTsKKyAgICBHUFJSZWcgY2FsbGVlUGF5bG9hZEdQUiA9IGNhbGxl
ZS5wYXlsb2FkR1BSKCk7CisgICAgdXNlKGNhbGxlZUVkZ2UpOworICAgIG1faml0LnN0b3JlMzIo
Y2FsbGVlUGF5bG9hZEdQUiwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpDYWxsZWUp
KTsKKyAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVRhZ0dQUiwgY2FsbGVlRnJhbWVUYWdTbG90KEpT
U3RhY2s6OkNhbGxlZSkpOworCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKIAogICAgIEdQUkZsdXNo
ZWRDYWxsUmVzdWx0IHJlc3VsdFBheWxvYWQodGhpcyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDE3OTgz
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYzNSwxMCArNjM1LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
ZW1pdENhbGwoTm9kZSogbm9kZQogICAgIENhbGxMaW5rSW5mbzo6Q2FsbFR5cGUgY2FsbFR5cGUg
PSBpc0NhbGwgPyBDYWxsTGlua0luZm86OkNhbGwgOiBDYWxsTGlua0luZm86OkNvbnN0cnVjdDsK
ICAgICAKICAgICBFZGdlIGNhbGxlZUVkZ2UgPSBtX2ppdC5ncmFwaCgpLm1fdmFyQXJnQ2hpbGRy
ZW5bbm9kZS0+Zmlyc3RDaGlsZCgpXTsKLSAgICBKU1ZhbHVlT3BlcmFuZCBjYWxsZWUodGhpcywg
Y2FsbGVlRWRnZSk7Ci0gICAgR1BSUmVnIGNhbGxlZUdQUiA9IGNhbGxlZS5ncHIoKTsKLSAgICB1
c2UoY2FsbGVlRWRnZSk7Ci0gICAgCiAgICAgLy8gVGhlIGNhbGwgaW5zdHJ1Y3Rpb24ncyBmaXJz
dCBjaGlsZCBpcyB0aGUgZnVuY3Rpb247IHRoZSBzdWJzZXF1ZW50IGNoaWxkcmVuIGFyZSB0aGUK
ICAgICAvLyBhcmd1bWVudHMuCiAgICAgaW50IG51bVBhc3NlZEFyZ3MgPSBub2RlLT5udW1DaGls
ZHJlbigpIC0gMTsKQEAgLTY0Niw3ICs2NDIsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0
Q2FsbChOb2RlKiBub2RlCiAgICAgaW50IG51bUFyZ3MgPSBudW1QYXNzZWRBcmdzICsgZHVtbXlU
aGlzQXJndW1lbnQ7CiAgICAgCiAgICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQpKTsKLSAgICBtX2ppdC5zdG9yZTY0KGNhbGxlZUdQUiwgY2FsbGVlRnJhbWVTbG90
KEpTU3RhY2s6OkNhbGxlZSkpOwogICAgIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUGFz
c2VkQXJnczsgaSsrKSB7CiAgICAgICAgIEVkZ2UgYXJnRWRnZSA9IG1faml0LmdyYXBoKCkubV92
YXJBcmdDaGlsZHJlbltub2RlLT5maXJzdENoaWxkKCkgKyAxICsgaV07CkBAIC02NTcsNiArNjUy
LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUKICAgICAgICAg
bV9qaXQuc3RvcmU2NChhcmdHUFIsIGNhbGxlZUFyZ3VtZW50U2xvdChpICsgZHVtbXlUaGlzQXJn
dW1lbnQpKTsKICAgICB9CiAKKyAgICBKU1ZhbHVlT3BlcmFuZCBjYWxsZWUodGhpcywgY2FsbGVl
RWRnZSk7CisgICAgR1BSUmVnIGNhbGxlZUdQUiA9IGNhbGxlZS5ncHIoKTsKKyAgICB1c2UoY2Fs
bGVlRWRnZSk7CisgICAgbV9qaXQuc3RvcmU2NChjYWxsZWVHUFIsIGNhbGxlZUZyYW1lU2xvdChK
U1N0YWNrOjpDYWxsZWUpKTsKKyAgICAKICAgICBmbHVzaFJlZ2lzdGVycygpOwogCiAgICAgR1BS
Rmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwo=
</data>
<flag name="review"
          id="271221"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>