<?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>65160</bug_id>
          
          <creation_ts>2011-07-25 20:06:36 -0700</creation_ts>
          <short_desc>DFG non-speculative JIT emits inefficient code for arithmetic involving two registers</short_desc>
          <delta_ts>2011-07-25 22:35:17 -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>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>442078</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-25 20:06:36 -0700</bug_when>
    <thetext>The DFG non-speculative JIT emits code for arithmetic that uses C helper functions in case the operands are not integers.  This results in bad performance regressions in case of speculation failure, where the hot code involves arithmetic on doubles.  The DFG non-speculative JIT should inline double arithmetic whenever possible, much like the old JSC JIT did.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442082</commentid>
    <comment_count>1</comment_count>
      <attachid>101964</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-25 20:11:50 -0700</bug_when>
    <thetext>Created attachment 101964
the patch

Tests are still running; will change flags to ? when/if they pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442083</commentid>
    <comment_count>2</comment_count>
      <attachid>101964</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-25 20:15:43 -0700</bug_when>
    <thetext>Comment on attachment 101964
the patch

Tests passed, ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442111</commentid>
    <comment_count>3</comment_count>
      <attachid>101964</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-25 22:25:19 -0700</bug_when>
    <thetext>Comment on attachment 101964
the patch

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

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        (albeit a small one), and a large speed-up on Kraken.

We should start listing the magnitude of performance progressions in the ChangeLog.
Failure to do so is making Sam sad. ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442114</commentid>
    <comment_count>4</comment_count>
      <attachid>101964</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-25 22:35:13 -0700</bug_when>
    <thetext>Comment on attachment 101964
the patch

Clearing flags on attachment: 101964

Committed r91743: &lt;http://trac.webkit.org/changeset/91743&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442115</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-25 22:35:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101964</attachid>
            <date>2011-07-25 20:11:50 -0700</date>
            <delta_ts>2011-07-25 22:35:13 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fastnonspecregarith_patch_1.diff</filename>
            <type>text/plain</type>
            <size>6539</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTE3MzcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTEtMDctMjUgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
Rkcgbm9uLXNwZWN1bGF0aXZlIEpJVCBlbWl0cyBpbmVmZmljaWVudCBjb2RlIGZvciBhcml0aG1l
dGljCisgICAgICAgIGludm9sdmluZyB0d28gcmVnaXN0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTE2MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhlIG5vbi1zcGVjdWxhdGl2ZSBK
SVQgbm93IGVtaXRzIGlubGluZSBjb2RlIGZvciBkb3VibGUgYXJpdGhtZXRpYywgYnV0CisgICAg
ICAgIHN0aWxsIGF0dGVtcHRzIGludGVnZXIgYXJpdGhtZXRpYyBmaXJzdC4gIFRoaXMgaXMgYSBz
cGVlZC11cCBvbiBTdW5TcGlkZXIKKyAgICAgICAgKGFsYmVpdCBhIHNtYWxsIG9uZSksIGFuZCBh
IGxhcmdlIHNwZWVkLXVwIG9uIEtyYWtlbi4KKworICAgICAgICAqIGRmZy9ERkdOb25TcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Tm9uU3BlY3VsYXRpdmVKSVQ6OmJhc2lj
QXJpdGhPcCk6CisKIDIwMTEtMDctMjUgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFtFRkxdIEJ1aWxkIGJyZWFrIHdpdGggLS1kZWJ1ZyBhZnRlciByODkx
NTMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vblNwZWN1bGF0aXZlSklU
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vblNwZWN1
bGF0aXZlSklULmNwcAkocmV2aXNpb24gOTE3MzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDM4ICsy
MjcsNDUgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6YmFzaWNBcml0aE9wKE5vZAogICAgIEpT
VmFsdWVPcGVyYW5kIGFyZzEodGhpcywgbm9kZS5jaGlsZDEoKSk7CiAgICAgSlNWYWx1ZU9wZXJh
bmQgYXJnMih0aGlzLCBub2RlLmNoaWxkMigpKTsKICAgICAKLSAgICBHUFJSZWcgYXJnMUdQUiA9
IGFyZzEuZ3ByKCk7Ci0gICAgR1BSUmVnIGFyZzJHUFIgPSBhcmcyLmdwcigpOworICAgIEZQUlRl
bXBvcmFyeSB0bXAxKHRoaXMpOworICAgIEZQUlRlbXBvcmFyeSB0bXAyKHRoaXMpOworICAgIEZQ
UlJlZyB0bXAxRlBSID0gdG1wMS5mcHIoKTsKKyAgICBGUFJSZWcgdG1wMkZQUiA9IHRtcDIuZnBy
KCk7CiAgICAgCiAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKIAorICAgIEdQUlJlZyBh
cmcxR1BSID0gYXJnMS5ncHIoKTsKKyAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7Cisg
ICAgCiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAKICAgICBhcmcx
LnVzZSgpOwogICAgIGFyZzIudXNlKCk7CiAgICAgCi0gICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0
IHNsb3dQYXRoOworICAgIEpJVENvbXBpbGVyOjpKdW1wIGNoaWxkMU5vdEludDsKKyAgICBKSVRD
b21waWxlcjo6SnVtcCBjaGlsZDJOb3RJbnQ7CisgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IG92
ZXJmbG93OwogICAgIAogICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDEoKSkpCi0g
ICAgICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJl
bG93LCBhcmcxR1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAg
Y2hpbGQxTm90SW50ID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJn
MUdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKICAgICBpZiAoIWlzS25vd25J
bnRlZ2VyKG5vZGUuY2hpbGQyKCkpKQotICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJh
bmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51
bWJlclJlZ2lzdGVyKSk7CisgICAgICAgIGNoaWxkMk5vdEludCA9IG1faml0LmJyYW5jaFB0cihN
YWNyb0Fzc2VtYmxlcjo6QmVsb3csIGFyZzJHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdp
c3Rlcik7CiAgICAgCiAgICAgc3dpdGNoIChvcCkgewogICAgIGNhc2UgVmFsdWVBZGQ6CiAgICAg
Y2FzZSBBcml0aEFkZDogewotICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoQWRk
MzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCBhcmcxR1BSLCBhcmcyR1BSLCByZXN1bHRHUFIp
KTsKKyAgICAgICAgb3ZlcmZsb3cuYXBwZW5kKG1faml0LmJyYW5jaEFkZDMyKE1hY3JvQXNzZW1i
bGVyOjpPdmVyZmxvdywgYXJnMUdQUiwgYXJnMkdQUiwgcmVzdWx0R1BSKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBBcml0aFN1YjogewotICAgICAgICBzbG93
UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCBh
cmcxR1BSLCBhcmcyR1BSLCByZXN1bHRHUFIpKTsKKyAgICAgICAgb3ZlcmZsb3cuYXBwZW5kKG1f
aml0LmJyYW5jaFN1YjMyKE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgYXJnMUdQUiwgYXJnMkdQ
UiwgcmVzdWx0R1BSKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCiAgICAgY2Fz
ZSBBcml0aE11bDogewotICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoTXVsMzIo
TWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCBhcmcxR1BSLCBhcmcyR1BSLCByZXN1bHRHUFIpKTsK
LSAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxl
cjo6WmVybywgcmVzdWx0R1BSKSk7CisgICAgICAgIG92ZXJmbG93LmFwcGVuZChtX2ppdC5icmFu
Y2hNdWwzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIGFyZzFHUFIsIGFyZzJHUFIsIHJlc3Vs
dEdQUikpOworICAgICAgICBvdmVyZmxvdy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdDMyKE1hY3Jv
QXNzZW1ibGVyOjpaZXJvLCByZXN1bHRHUFIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
ICAgICAKQEAgLTI3MCwzNCArMjc3LDg0IEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6OmJhc2lj
QXJpdGhPcChOb2QKICAgICAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0
Lmp1bXAoKTsKICAgICAKLSAgICBzbG93UGF0aC5saW5rKCZtX2ppdCk7Ci0gICAgCi0gICAgc2ls
ZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKICAgICBpZiAob3AgPT0gVmFsdWVBZGQp
IHsKKyAgICAgICAgaWYgKGNoaWxkMU5vdEludC5pc1NldCgpKQorICAgICAgICAgICAgY2hpbGQx
Tm90SW50LmxpbmsoJm1faml0KTsKKyAgICAgICAgaWYgKGNoaWxkMk5vdEludC5pc1NldCgpKQor
ICAgICAgICAgICAgY2hpbGQyTm90SW50LmxpbmsoJm1faml0KTsKKyAgICAgICAgb3ZlcmZsb3cu
bGluaygmbV9qaXQpOworICAgICAgICAKKyAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMo
cmVzdWx0R1BSKTsKICAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzKGFyZzFHUFIsIGFyZzJHUFIp
OwogICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9w
ZXJhdGlvblZhbHVlQWRkKTsKKyAgICAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRH
UFIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHNldHVwVHdvU3R1YkFyZ3M8R1BSSW5mbzo6YXJn
dW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1bWVudEdQUjE+KGFyZzFHUFIsIGFyZzJHUFIpOworICAg
ICAgICBKSVRDb21waWxlcjo6SnVtcExpc3QgaGF2ZUZQUkFyZ3VtZW50czsKKworICAgICAgICBv
dmVyZmxvdy5saW5rKCZtX2ppdCk7CisgICAgICAgIAorICAgICAgICAvLyBib3RoIGFyZ3VtZW50
cyBhcmUgaW50ZWdlcnMKKyAgICAgICAgbV9qaXQuY29udmVydEludDMyVG9Eb3VibGUoYXJnMUdQ
UiwgdG1wMUZQUik7CisgICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKGFyZzJHUFIs
IHRtcDJGUFIpOworICAgICAgICAKKyAgICAgICAgaGF2ZUZQUkFyZ3VtZW50cy5hcHBlbmQobV9q
aXQuanVtcCgpKTsKKyAgICAgICAgCisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGNoaWxkMk5v
dEludDI7CisgICAgICAgIAorICAgICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQx
KCkpKSB7CisgICAgICAgICAgICBjaGlsZDFOb3RJbnQubGluaygmbV9qaXQpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBtX2ppdC5tb3ZlKGFyZzFHUFIsIHJlc3VsdEdQUik7CisgICAgICAg
ICAgICB1bmJveERvdWJsZShyZXN1bHRHUFIsIHRtcDFGUFIpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICAvLyBjaGlsZDEgaXMgY29udmVydGVkIHRvIGEgZG91YmxlOyBjaGlsZDIgbWF5IGVp
dGhlciBiZSBhbiBpbnQgb3IKKyAgICAgICAgICAgIC8vIGEgYm94ZWQgZG91YmxlCisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5jaGlsZDIoKSkpCisg
ICAgICAgICAgICAgICAgY2hpbGQyTm90SW50MiA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QmVsb3csIGFyZzJHUFIsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNoaWxkIDIgaXMgZGVmaW5pdGVseSBhbiBpbnRl
Z2VyCisgICAgICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShhcmcyR1BSLCB0bXAy
RlBSKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaGF2ZUZQUkFyZ3VtZW50cy5hcHBlbmQo
bV9qaXQuanVtcCgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFpc0tub3du
SW50ZWdlcihub2RlLmNoaWxkMigpKSkgeworICAgICAgICAgICAgY2hpbGQyTm90SW50Lmxpbmso
Jm1faml0KTsKKyAgICAgICAgICAgIC8vIGNoaWxkMSBpcyBkZWZpbml0ZWx5IGFuIGludGVnZXIs
IGFuZCBjaGlsZCAyIGlzIGRlZmluaXRlbHkgbm90CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKGFyZzFHUFIsIHRtcDFGUFIpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBpZiAoY2hpbGQyTm90SW50Mi5pc1NldCgpKQorICAgICAgICAgICAg
ICAgIGNoaWxkMk5vdEludDIubGluaygmbV9qaXQpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBtX2ppdC5tb3ZlKGFyZzJHUFIsIHJlc3VsdEdQUik7CisgICAgICAgICAgICB1bmJveERvdWJs
ZShyZXN1bHRHUFIsIHRtcDJGUFIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBoYXZl
RlBSQXJndW1lbnRzLmxpbmsoJm1faml0KTsKKyAgICAgICAgCiAgICAgICAgIHN3aXRjaCAob3Ap
IHsKICAgICAgICAgY2FzZSBBcml0aEFkZDoKLSAgICAgICAgICAgIG1faml0LmFwcGVuZENhbGwo
b3BlcmF0aW9uQXJpdGhBZGQpOworICAgICAgICAgICAgbV9qaXQuYWRkRG91YmxlKHRtcDJGUFIs
IHRtcDFGUFIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBBcml0aFN1YjoKLSAgICAgICAgICAgIG1faml0LmFwcGVuZENhbGwob3BlcmF0aW9uQXJpdGhT
dWIpOworICAgICAgICAgICAgbV9qaXQuc3ViRG91YmxlKHRtcDJGUFIsIHRtcDFGUFIpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcml0aE11bDoKLSAg
ICAgICAgICAgIG1faml0LmFwcGVuZENhbGwob3BlcmF0aW9uQXJpdGhNdWwpOworICAgICAgICAg
ICAgbV9qaXQubXVsRG91YmxlKHRtcDJGUFIsIHRtcDFGUFIpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICBib3hEb3VibGUodG1wMUZQ
UiwgcmVzdWx0R1BSKTsKICAgICB9Ci0gICAgbV9qaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUiwgcmVzdWx0R1BSKTsKLSAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7
CiAgICAgCiAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAgICAgICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>