<?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>64574</bug_id>
          
          <creation_ts>2011-07-14 17:11:42 -0700</creation_ts>
          <short_desc>DFG JIT does not optimize Branch as well as it could</short_desc>
          <delta_ts>2011-07-14 19:06:27 -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>0</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>437425</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-14 17:11:42 -0700</bug_when>
    <thetext>The DFG speculative JIT will terminate speculation if a Branch did not encounter an integer or a boolean.  Terminating speculation in this case is not profitable, since proving that the Branch encountered either integer or boolean does not provide any useful data flow information (at least not in the current DFG JIT architecture).  The non-speculative JIT always performs slow calls for Branches.  Both JITs should use the same implementation of Branch, which does no speculation, and only performs a slow call if necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437427</commentid>
    <comment_count>1</comment_count>
      <attachid>100901</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-14 17:15:40 -0700</bug_when>
    <thetext>Created attachment 100901
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437475</commentid>
    <comment_count>2</comment_count>
      <attachid>100901</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-14 19:06:23 -0700</bug_when>
    <thetext>Comment on attachment 100901
the patch

Clearing flags on attachment: 100901

Committed r91041: &lt;http://trac.webkit.org/changeset/91041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437476</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-14 19:06:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100901</attachid>
            <date>2011-07-14 17:15:40 -0700</date>
            <delta_ts>2011-07-14 19:06:22 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fastbranch_patch_1.diff</filename>
            <type>text/plain</type>
            <size>6682</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTEwMzcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTEtMDctMTQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIGRvZXMgbm90IG9wdGltaXplIEJyYW5jaCBhcyB3ZWxsIGFzIGl0IGNvdWxkLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1NzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
Y3JlYXRlcyBhIGNvbW1vbiBjb2RlIHBhdGggZm9yIGVtaXR0aW5nIHVuZnVzZWQgYnJhbmNoZXMs
IHdoaWNoIGRvZXMKKyAgICAgICAgbm8gc3BlY3VsYXRpb24sIGFuZCBvbmx5IHBlcmZvcm1zIGEg
c2xvdyBjYWxsIGlmIGFic29sdXRlbHkgbmVjZXNzYXJ5LgorCisgICAgICAgICogZGZnL0RGR0pJ
VENvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6
OmVtaXRCcmFuY2gpOgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmg6CisgICAg
ICAgICogZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpO
b25TcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisK
IDIwMTEtMDctMTQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBE
RkcgSklUIGNyYXNoZXMgb24gaG9zdCBjb25zdHJ1Y3RvciBjYWxscyBpbiBkZWJ1ZyBtb2RlLgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0
b3IuY3BwCShyZXZpc2lvbiA5MTAzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2OCw2ICs0NjgsMzYgQEAg
dm9pZCBKSVRDb2RlR2VuZXJhdG9yOjpjYWNoZWRHZXRNZXRob2QoRwogICAgIG1faml0LmFkZE1l
dGhvZEdldChzbG93Q2FsbCwgc3RydWN0VG9Db21wYXJlLCBwcm90b09iaiwgcHJvdG9TdHJ1Y3RU
b0NvbXBhcmUsIHB1dEZ1bmN0aW9uKTsKIH0KIAordm9pZCBKSVRDb2RlR2VuZXJhdG9yOjplbWl0
QnJhbmNoKE5vZGUmIG5vZGUpCit7CisgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9k
ZS5jaGlsZDEoKSk7CisgICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWUuZ3ByKCk7CisgICAgCisg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVz
dWx0LmdwcigpOworICAgIAorICAgIEJsb2NrSW5kZXggdGFrZW4gPSBtX2ppdC5ncmFwaCgpLmJs
b2NrSW5kZXhGb3JCeXRlY29kZU9mZnNldChub2RlLnRha2VuQnl0ZWNvZGVPZmZzZXQoKSk7Cisg
ICAgQmxvY2tJbmRleCBub3RUYWtlbiA9IG1faml0LmdyYXBoKCkuYmxvY2tJbmRleEZvckJ5dGVj
b2RlT2Zmc2V0KG5vZGUubm90VGFrZW5CeXRlY29kZU9mZnNldCgpKTsKKworICAgIGFkZEJyYW5j
aChtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCB2YWx1ZUdQUiwgTWFjcm9B
c3NlbWJsZXI6OkltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMCkpKSksIG5vdFRha2Vu
KTsKKyAgICBhZGRCcmFuY2gobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9y
RXF1YWwsIHZhbHVlR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpLCB0YWtlbik7
CisgICAgYWRkQnJhbmNoKG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHZh
bHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4o
ZmFsc2UpKSkpLCBub3RUYWtlbik7CisgICAgYWRkQnJhbmNoKG1faml0LmJyYW5jaFB0cihNYWNy
b0Fzc2VtYmxlcjo6RXF1YWwsIHZhbHVlR1BSLCBNYWNyb0Fzc2VtYmxlcjo6SW1tUHRyKEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1ZSkpKSksIHRha2VuKTsKKyAgICAKKyAgICBzaWxlbnRT
cGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOworICAgIG1faml0Lm1vdmUodmFsdWVHUFIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgbV9qaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrKGRmZ0NvbnZlcnRKU1ZhbHVlVG9Cb29sZWFuKTsKKyAgICBtX2ppdC5tb3ZlKEdQ
UkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHRHUFIpOworICAgIHNpbGVudEZpbGxBbGxSZWdp
c3RlcnMocmVzdWx0R1BSKTsKKyAgICAKKyAgICBhZGRCcmFuY2gobV9qaXQuYnJhbmNoVGVzdDgo
TWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIHJlc3VsdEdQUiksIHRha2VuKTsKKyAgICBpZiAobm90
VGFrZW4gIT0gKG1fYmxvY2sgKyAxKSkKKyAgICAgICAgYWRkQnJhbmNoKG1faml0Lmp1bXAoKSwg
bm90VGFrZW4pOworICAgIAorICAgIG5vUmVzdWx0KG1fY29tcGlsZUluZGV4KTsKK30KKwogdm9p
ZCBKSVRDb2RlR2VuZXJhdG9yOjplbWl0Q2FsbChOb2RlJiBub2RlKQogewogICAgIFBfREZHT3Bl
cmF0aW9uX0Ugc2xvd0NhbGxGdW5jdGlvbjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiA5MTAzMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC01MzUsNiArNTM1LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY2FjaGVkUHV0QnlJZChH
UFJSZWcgYmFzZUdQUiwgR1BSUmVnIHZhbHVlR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgdW5zaWdu
ZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2luZCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhU
YXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpKTsKICAgICB2b2lkIGNhY2hlZEdldE1ldGhvZChH
UFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJl
ciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgp
KTsKICAgICAKKyAgICB2b2lkIGVtaXRCcmFuY2goTm9kZSYpOworICAgIAogICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzIGFkZHJlc3NPZkNhbGxEYXRhKGludCBpZHgpCiAgICAgewogICAgICAg
ICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIChtX2ppdC5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3RlcnMgKyBpZHgpICogc3Rh
dGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gOTEw
MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTIwLDI0ICs5MjAsOSBAQCB2b2lkIE5vblNwZWN1bGF0aXZl
SklUOjpjb21waWxlKFNwZWN1bGF0CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNhc2Ug
QnJhbmNoOiB7Ci0gICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUuY2hpbGQx
KCkpOwotICAgICAgICBHUFJSZWcgdmFsdWVHUFIgPSB2YWx1ZS5ncHIoKTsKLSAgICAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKLQotICAgICAgICBHUFJSZXN1bHQgcmVzdWx0KHRoaXMpOwotICAgICAg
ICBjYWxsT3BlcmF0aW9uKGRmZ0NvbnZlcnRKU1ZhbHVlVG9Cb29sZWFuLCByZXN1bHQuZ3ByKCks
IHZhbHVlR1BSKTsKLQotICAgICAgICBCbG9ja0luZGV4IHRha2VuID0gbV9qaXQuZ3JhcGgoKS5i
bG9ja0luZGV4Rm9yQnl0ZWNvZGVPZmZzZXQobm9kZS50YWtlbkJ5dGVjb2RlT2Zmc2V0KCkpOwot
ICAgICAgICBCbG9ja0luZGV4IG5vdFRha2VuID0gbV9qaXQuZ3JhcGgoKS5ibG9ja0luZGV4Rm9y
Qnl0ZWNvZGVPZmZzZXQobm9kZS5ub3RUYWtlbkJ5dGVjb2RlT2Zmc2V0KCkpOwotCi0gICAgICAg
IGFkZEJyYW5jaChtX2ppdC5icmFuY2hUZXN0OChNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywgcmVz
dWx0LmdwcigpKSwgdGFrZW4pOwotICAgICAgICBpZiAobm90VGFrZW4gIT0gKG1fYmxvY2sgKyAx
KSkKLSAgICAgICAgICAgIGFkZEJyYW5jaChtX2ppdC5qdW1wKCksIG5vdFRha2VuKTsKLQotICAg
ICAgICBub1Jlc3VsdChtX2NvbXBpbGVJbmRleCk7CisgICAgY2FzZSBCcmFuY2g6CisgICAgICAg
IGVtaXRCcmFuY2gobm9kZSk7CiAgICAgICAgIGJyZWFrOwotICAgIH0KIAogICAgIGNhc2UgUmV0
dXJuOiB7CiAgICAgICAgIEFTU0VSVChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciAhPSBHUFJJ
bmZvOjpyZWdUMSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gOTEwMzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQzLDMxICs5
NDMsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgIEpTVmFsdWVPcGVy
YW5kIHZhbHVlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwotICAgICAgICBHUFJSZWcgdmFsdWVSZWcg
PSB2YWx1ZS5ncHIoKTsKLQotICAgICAgICBCbG9ja0luZGV4IHRha2VuID0gbV9qaXQuZ3JhcGgo
KS5ibG9ja0luZGV4Rm9yQnl0ZWNvZGVPZmZzZXQobm9kZS50YWtlbkJ5dGVjb2RlT2Zmc2V0KCkp
OwotICAgICAgICBCbG9ja0luZGV4IG5vdFRha2VuID0gbV9qaXQuZ3JhcGgoKS5ibG9ja0luZGV4
Rm9yQnl0ZWNvZGVPZmZzZXQobm9kZS5ub3RUYWtlbkJ5dGVjb2RlT2Zmc2V0KCkpOwotCi0gICAg
ICAgIC8vIEludGVnZXJzCi0gICAgICAgIGFkZEJyYW5jaChtX2ppdC5icmFuY2hQdHIoTWFjcm9B
c3NlbWJsZXI6OkVxdWFsLCB2YWx1ZVJlZywgTWFjcm9Bc3NlbWJsZXI6OkltbVB0cihKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoMCkpKSksIG5vdFRha2VuKTsKLSAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgaXNOb25aZXJvSW50ZWdlciA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWJvdmVPckVxdWFsLCB2YWx1ZVJlZywgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
KTsKLQotICAgICAgICAvLyBCb29sZWFucwotICAgICAgICBhZGRCcmFuY2gobV9qaXQuYnJhbmNo
UHRyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgdmFsdWVSZWcsIE1hY3JvQXNzZW1ibGVyOjpJbW1Q
dHIoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihmYWxzZSkpKSksIG5vdFRha2VuKTsKLSAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVx
dWFsLCB2YWx1ZVJlZywgTWFjcm9Bc3NlbWJsZXI6OkltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKHRydWUpKSkpKTsKLQotICAgICAgICBpZiAodGFrZW4gPT0gKG1fYmxvY2sgKyAxKSkK
LSAgICAgICAgICAgIGlzTm9uWmVyb0ludGVnZXIubGluaygmbV9qaXQpOwotICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgIGFkZEJyYW5jaChpc05vblplcm9JbnRlZ2VyLCB0YWtlbik7Ci0gICAg
ICAgICAgICBhZGRCcmFuY2gobV9qaXQuanVtcCgpLCB0YWtlbik7Ci0gICAgICAgIH0KLQotICAg
ICAgICBub1Jlc3VsdChtX2NvbXBpbGVJbmRleCk7CisgICAgY2FzZSBCcmFuY2g6CisgICAgICAg
IGVtaXRCcmFuY2gobm9kZSk7CiAgICAgICAgIGJyZWFrOwotICAgIH0KIAogICAgIGNhc2UgUmV0
dXJuOiB7CiAgICAgICAgIEFTU0VSVChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciAhPSBHUFJJ
bmZvOjpyZWdUMSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>