<?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>65146</bug_id>
          
          <creation_ts>2011-07-25 16:01:02 -0700</creation_ts>
          <short_desc>DFG non-speculative JIT emits obviously inefficient code for arithmetic where one operand is a constant</short_desc>
          <delta_ts>2011-07-25 18:05:05 -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>441946</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-25 16:01:02 -0700</bug_when>
    <thetext>The DFG non-speculative JIT uses C function calls as non-integer or overflow-handling slow-paths for arithmetic against constants.  This is obviously inefficient, since the code will almost always see a number in the non-constant operand, and emitting int-to-double conversion (or double unboxing) followed by double arithmetic is both faster and likely involves less code than a C call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441984</commentid>
    <comment_count>1</comment_count>
      <attachid>101942</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-25 16:40:40 -0700</bug_when>
    <thetext>Created attachment 101942
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441987</commentid>
    <comment_count>2</comment_count>
      <attachid>101942</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-25 16:47:12 -0700</bug_when>
    <thetext>Comment on attachment 101942
the patch

I guess we might want to also be able inline double code for ValueAdd too at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441988</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-25 16:48:23 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 101942 [details])
&gt; I guess we might want to also be able inline double code for ValueAdd too at some point.

Indeed, and I think that we&apos;re actually hitting that slow path in Kraken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442042</commentid>
    <comment_count>4</comment_count>
      <attachid>101942</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-25 18:05:01 -0700</bug_when>
    <thetext>Comment on attachment 101942
the patch

Clearing flags on attachment: 101942

Committed r91734: &lt;http://trac.webkit.org/changeset/91734&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442043</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-25 18:05:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101942</attachid>
            <date>2011-07-25 16:40:40 -0700</date>
            <delta_ts>2011-07-25 18:05:01 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>constarithfast_patch_1.diff</filename>
            <type>text/plain</type>
            <size>5433</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTE3MTUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDctMjUgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
Rkcgbm9uLXNwZWN1bGF0aXZlIEpJVCBlbWl0cyBvYnZpb3VzbHkgaW5lZmZpY2llbnQgY29kZSBm
b3IgYXJpdGhtZXRpYworICAgICAgICB3aGVyZSBvbmUgb3BlcmFuZCBpcyBhIGNvbnN0YW50Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUxNDYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIENo
YW5nZWQgdGhlIGNvZGUgdG8gZW1pdCBkb3VibGUgYXJpdGhtZXRpYyBpbmxpbmUuCisKKyAgICAg
ICAgKiBkZmcvREZHTm9uU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok5v
blNwZWN1bGF0aXZlSklUOjprbm93bkNvbnN0YW50QXJpdGhPcCk6CisKIDIwMTEtMDctMjUgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHI5MTY4Ni4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9uU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9uU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiA5MTcwNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9uU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjYsOCArMTI2LDEyIEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6Omtu
b3duQ29uc3RhbnRBcmkKIHsKICAgICBKU1ZhbHVlT3BlcmFuZCByZWdBcmcodGhpcywgcmVnQ2hp
bGQpOwogICAgIEdQUlJlZyByZWdBcmdHUFIgPSByZWdBcmcuZ3ByKCk7Ci0gICAgR1BSVGVtcG9y
YXJ5IHJlc3VsdCh0aGlzLCByZWdBcmcpOworICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7
CiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICBGUFJUZW1wb3Jhcnkg
dG1wMSh0aGlzKTsKKyAgICBGUFJUZW1wb3JhcnkgdG1wMih0aGlzKTsKKyAgICBGUFJSZWcgdG1w
MUZQUiA9IHRtcDEuZnByKCk7CisgICAgRlBSUmVnIHRtcDJGUFIgPSB0bXAyLmZwcigpOwogICAg
IAogICAgIHJlZ0FyZy51c2UoKTsKICAgICB1c2UoaW1tQ2hpbGQpOwpAQCAtMTQzLDE1ICsxNDcs
MTMgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6a25vd25Db25zdGFudEFyaQogICAgIAogICAg
IHN3aXRjaCAob3ApIHsKICAgICBjYXNlIFZhbHVlQWRkOgotICAgIGNhc2UgQXJpdGhBZGQ6IHsK
KyAgICBjYXNlIEFyaXRoQWRkOgogICAgICAgICBvdmVyZmxvdyA9IG1faml0LmJyYW5jaEFkZDMy
KE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgcmVnQXJnR1BSLCBJbW0zMihpbW0pLCByZXN1bHRH
UFIpOwogICAgICAgICBicmVhazsKLSAgICB9CiAgICAgICAgIAotICAgIGNhc2UgQXJpdGhTdWI6
IHsKKyAgICBjYXNlIEFyaXRoU3ViOgogICAgICAgICBvdmVyZmxvdyA9IG1faml0LmJyYW5jaFN1
YjMyKE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgcmVnQXJnR1BSLCBJbW0zMihpbW0pLCByZXN1
bHRHUFIpOwogICAgICAgICBicmVhazsKLSAgICB9CiAgICAgICAgIAogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTYzLDMxICsxNjUsMTMgQEAgdm9pZCBO
b25TcGVjdWxhdGl2ZUpJVDo6a25vd25Db25zdGFudEFyaQogICAgIAogICAgIG92ZXJmbG93Lmxp
bmsoJm1faml0KTsKICAgICAKLSAgICBpZiAocmVnQXJnR1BSID09IHJlc3VsdEdQUikgewotICAg
ICAgICBzd2l0Y2ggKG9wKSB7Ci0gICAgICAgIGNhc2UgVmFsdWVBZGQ6Ci0gICAgICAgIGNhc2Ug
QXJpdGhBZGQ6IHsKLSAgICAgICAgICAgIG1faml0LnN1YjMyKEltbTMyKGltbSksIHJlZ0FyZ0dQ
Uik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAg
IGNhc2UgQXJpdGhTdWI6IHsKLSAgICAgICAgICAgIG1faml0LmFkZDMyKEltbTMyKGltbSksIHJl
Z0FyZ0dQUik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgfQotICAgICAgICBtX2ppdC5vclB0cihHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIs
IHJlZ0FyZ0dQUik7Ci0gICAgfQotICAgIAotICAgIGlmICghaXNLbm93bkludGVnZXIocmVnQ2hp
bGQpKQotICAgICAgICBub3RJbnQubGluaygmbV9qaXQpOwotICAgIAotICAgIHNpbGVudFNwaWxs
QWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CiAgICAgc3dpdGNoIChvcCkgewogICAgIGNhc2UgVmFs
dWVBZGQ6CisgICAgICAgIC8vIG92ZXJmbG93IGFuZCBub3QtaW50IGFyZSB0aGUgc2FtZQorICAg
ICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKHJlZ0NoaWxkKSkKKyAgICAgICAgICAgIG5vdEludC5s
aW5rKCZtX2ppdCk7CisgICAgICAgIAorICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhy
ZXN1bHRHUFIpOwogICAgICAgICBpZiAoY29tbXV0ZSkgewogICAgICAgICAgICAgbV9qaXQubW92
ZShyZWdBcmdHUFIsIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgICAgICAgICBtX2ppdC5t
b3ZlKE1hY3JvQXNzZW1ibGVyOjpJbW1QdHIoc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihpbW0pKSkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwpAQCAt
MTk3LDMxICsxODEsNDEgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6a25vd25Db25zdGFudEFy
aQogICAgICAgICB9CiAgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uVmFsdWVBZGQpOworICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86
OnJldHVyblZhbHVlR1BSLCByZXN1bHRHUFIpOworICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0
ZXJzKHJlc3VsdEdQUik7CiAgICAgICAgIGJyZWFrOwotICAgICAgICAKKwogICAgIGNhc2UgQXJp
dGhBZGQ6Ci0gICAgICAgIGlmIChjb21tdXRlKSB7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKHJl
Z0FyZ0dQUiwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICAgICAgICAgIG1faml0Lm1vdmUo
TWFjcm9Bc3NlbWJsZXI6OkltbVB0cihzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGltbSkpKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKHJlZ0FyZ0dQUiwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKLSAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OkltbVB0
cihzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGltbSkp
KSksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgY2FzZSBBcml0aFN1YjoKKyAgICAgICAg
Ly8gZmlyc3QgZGVhbCB3aXRoIG92ZXJmbG93IGNhc2UKKyAgICAgICAgbV9qaXQuY29udmVydElu
dDMyVG9Eb3VibGUocmVnQXJnR1BSLCB0bXAyRlBSKTsKKyAgICAgICAgCisgICAgICAgIC8vIG5v
dyBkZWFsIHdpdGggbm90LWludCBjYXNlLCBpZiBhcHBsaWNhYmxlCisgICAgICAgIGlmICghaXNL
bm93bkludGVnZXIocmVnQ2hpbGQpKSB7CisgICAgICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBo
YXZlVmFsdWUgPSBtX2ppdC5qdW1wKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG5vdElu
dC5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1faml0Lm1vdmUocmVn
QXJnR1BSLCByZXN1bHRHUFIpOworICAgICAgICAgICAgbV9qaXQuYWRkUHRyKEdQUkluZm86OnRh
Z1R5cGVOdW1iZXJSZWdpc3RlciwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmVQ
dHJUb0RvdWJsZShyZXN1bHRHUFIsIHRtcDJGUFIpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBoYXZlVmFsdWUubGluaygmbV9qaXQpOwogICAgICAgICB9Ci0gICAgICAgIG1faml0LmFwcGVu
ZENhbGwob3BlcmF0aW9uQXJpdGhBZGQpOwotICAgICAgICBicmVhazsKICAgICAgICAgCi0gICAg
Y2FzZSBBcml0aFN1YjoKLSAgICAgICAgQVNTRVJUKCFjb21tdXRlKTsKLSAgICAgICAgbV9qaXQu
bW92ZShyZWdBcmdHUFIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIG1faml0Lm1v
dmUoTWFjcm9Bc3NlbWJsZXI6OkltbVB0cihzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGltbSkpKSksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAg
ICAgIG1faml0LmFwcGVuZENhbGwob3BlcmF0aW9uQXJpdGhTdWIpOworICAgICAgICBtX2ppdC5t
b3ZlKE1hY3JvQXNzZW1ibGVyOjpJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRl
cnByZXREb3VibGVUb0ludHB0cih2YWx1ZU9mRG91YmxlQ29uc3RhbnQoaW1tQ2hpbGQpKSkpLCBy
ZXN1bHRHUFIpOworICAgICAgICBtX2ppdC5tb3ZlUHRyVG9Eb3VibGUocmVzdWx0R1BSLCB0bXAx
RlBSKTsKKyAgICAgICAgaWYgKG9wID09IEFyaXRoQWRkKQorICAgICAgICAgICAgbV9qaXQuYWRk
RG91YmxlKHRtcDFGUFIsIHRtcDJGUFIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2pp
dC5zdWJEb3VibGUodG1wMUZQUiwgdG1wMkZQUik7CisgICAgICAgIG1faml0Lm1vdmVEb3VibGVU
b1B0cih0bXAyRlBSLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC5zdWJQdHIoR1BSSW5mbzo6
dGFnVHlwZU51bWJlclJlZ2lzdGVyLCByZXN1bHRHUFIpOwogICAgICAgICBicmVhazsKICAgICAg
ICAgCiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQot
ICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHJlc3VsdEdQUik7Ci0gICAg
c2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOwogICAgIAogICAgIGRvbmUubGluaygm
bV9qaXQpOwogICAgICAgICAK
</data>

          </attachment>
      

    </bug>

</bugzilla>