<?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>44037</bug_id>
          
          <creation_ts>2010-08-15 13:48:00 -0700</creation_ts>
          <short_desc>JSC: Move the static_cast into to(U)Int32 fast case</short_desc>
          <delta_ts>2010-08-19 14:04:49 -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>Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>264876</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-15 13:48:00 -0700</bug_when>
    <thetext>Converting a double JSValue to an int32 (or uint32) is fairly expensive since it includes the overhead of calling to(U)Int32SlowCase.

We could move the ideal case (static_cast&lt;(u)int32_t&gt; of double value within range) out of the slow case for a performance boost on conversion-heavy pages such as http://www.bel.fi/~alankila/plasma.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264877</commentid>
    <comment_count>1</comment_count>
      <attachid>64453</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-15 13:53:37 -0700</bug_when>
    <thetext>Created attachment 64453
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266186</commentid>
    <comment_count>2</comment_count>
      <attachid>64453</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-08-18 10:07:36 -0700</bug_when>
    <thetext>Comment on attachment 64453
Proposed patch

For changes that are likely to affect performance, we usually require a performance measurement.

Please at least post SunSpider results with and without this patch, though I&apos;d also be interested to see measurements of the website you mentioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266373</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-18 14:25:01 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 64453 [details])
&gt; Please at least post SunSpider results with and without this patch, though I&apos;d also be interested to see measurements of the website you mentioned.

Callgrind says: SunSpider is an amazing 0.0000072283% faster with this change.

Results for the linked page are pretty much uninteresting until something is done about bug 43742.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266877</commentid>
    <comment_count>4</comment_count>
      <attachid>64453</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-08-19 12:01:34 -0700</bug_when>
    <thetext>Comment on attachment 64453
Proposed patch

With the fix for 43742 landed, this patch yields a 1.6% speedup for the plasma demo - http://www.bel.fi/~alankila/plasma.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266880</commentid>
    <comment_count>5</comment_count>
      <attachid>64453</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-08-19 12:08:04 -0700</bug_when>
    <thetext>Comment on attachment 64453
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266946</commentid>
    <comment_count>6</comment_count>
      <attachid>64453</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-19 14:04:44 -0700</bug_when>
    <thetext>Comment on attachment 64453
Proposed patch

Clearing flags on attachment: 64453

Committed r65698: &lt;http://trac.webkit.org/changeset/65698&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266948</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-19 14:04:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64453</attachid>
            <date>2010-08-15 13:53:37 -0700</date>
            <delta_ts>2010-08-19 14:04:44 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-44037.diff</filename>
            <type>text/plain</type>
            <size>3729</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA3NDE4YzM4Li43YWY4MmUxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTAtMDgtMTUgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU0M6IE1v
dmUgdGhlIHN0YXRpY19jYXN0IGludG8gdG8oVSlJbnQzMiBmYXN0IGNhc2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MDM3CisKKyAgICAgICAgRG8g
dGhlIHN0YXRpY19jYXN0PCh1KWludDMyX3Q+IGlubGluZSB0byBhdm9pZCB0aGUgZnVuY3Rpb24g
Y2FsbCBvdmVyaGVhZAorICAgICAgICBmb3IgZWFzaWx5IGNvbnZlcnRlZCB2YWx1ZXMgKHdpdGhp
biAodSlpbnQzMl90IHJhbmdlLikKKworICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5jcHA6Cisg
ICAgICAgIChKU0M6OnRvSW50MzJTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OnRvVUludDMyU2xv
d0Nhc2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgorICAgICAgICAoSlNDOjpKU1Zh
bHVlOjp0b0ludDMyKToKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6dG9VSW50MzIpOgorCiAyMDEw
LTA4LTE0ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYWx1ZS5jcHAKaW5kZXggZTc1MmQzZi4uNmRiNjk1NCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VmFsdWUuY3BwCkBAIC0xMzcsMTYgKzEzNywxMyBAQCBjaGFyKiBKU1ZhbHVlOjpkZXNjcmlwdGlv
bigpCiAKIGludDMyX3QgdG9JbnQzMlNsb3dDYXNlKGRvdWJsZSBkLCBib29sJiBvaykKIHsKLSAg
ICBvayA9IHRydWU7Ci0KLSAgICBpZiAoZCA+PSAtRDMyIC8gMiAmJiBkIDwgRDMyIC8gMikKLSAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KGQpOwotCiAgICAgaWYgKGlzbmFuKGQp
IHx8IGlzaW5mKGQpKSB7CiAgICAgICAgIG9rID0gZmFsc2U7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIAorICAgIG9rID0gdHJ1ZTsKKwogICAgIGRvdWJsZSBkMzIgPSBmbW9kKHRydW5jKGQp
LCBEMzIpOwogICAgIGlmIChkMzIgPj0gRDMyIC8gMikKICAgICAgICAgZDMyIC09IEQzMjsKQEAg
LTE1NywxNiArMTU0LDEzIEBAIGludDMyX3QgdG9JbnQzMlNsb3dDYXNlKGRvdWJsZSBkLCBib29s
JiBvaykKIAogdWludDMyX3QgdG9VSW50MzJTbG93Q2FzZShkb3VibGUgZCwgYm9vbCYgb2spCiB7
Ci0gICAgb2sgPSB0cnVlOwotCi0gICAgaWYgKGQgPj0gMC4wICYmIGQgPCBEMzIpCi0gICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZCk7Ci0KICAgICBpZiAoaXNuYW4oZCkgfHwg
aXNpbmYoZCkpIHsKICAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCisgICAgb2sgPSB0cnVlOworCiAgICAgZG91YmxlIGQzMiA9IGZtb2QodHJ1bmMoZCksIEQz
Mik7CiAgICAgaWYgKGQzMiA8IDApCiAgICAgICAgIGQzMiArPSBEMzI7CmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYWx1ZS5oCmluZGV4IDNjNmJjMDkuLmFmNGIwZjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYWx1ZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1
ZS5oCkBAIC0zOTcsMTYgKzM5NywyOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgICAg
IGlmIChpc0ludDMyKCkpCiAgICAgICAgICAgICByZXR1cm4gYXNJbnQzMigpOworCisgICAgICAg
IGRvdWJsZSB2YWwgPSB0b051bWJlcihleGVjKTsKKworICAgICAgICBpZiAodmFsID49IC0yMTQ3
NDgzNjQ4LjAgJiYgdmFsIDwgMjE0NzQ4MzY0OC4wKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludDMyX3Q+KHZhbCk7CisKICAgICAgICAgYm9vbCBpZ25vcmVkOwotICAgICAgICBy
ZXR1cm4gdG9JbnQzMlNsb3dDYXNlKHRvTnVtYmVyKGV4ZWMpLCBpZ25vcmVkKTsKKyAgICAgICAg
cmV0dXJuIHRvSW50MzJTbG93Q2FzZSh2YWwsIGlnbm9yZWQpOwogICAgIH0KIAogICAgIGlubGlu
ZSB1aW50MzJfdCBKU1ZhbHVlOjp0b1VJbnQzMihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAg
ewogICAgICAgICBpZiAoaXNVSW50MzIoKSkKICAgICAgICAgICAgIHJldHVybiBhc0ludDMyKCk7
CisKKyAgICAgICAgZG91YmxlIHZhbCA9IHRvTnVtYmVyKGV4ZWMpOworCisgICAgICAgIGlmICh2
YWwgPj0gMC4wICYmIHZhbCA8IDQyOTQ5NjcyOTYuMCkKKyAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1aW50MzJfdD4odmFsKTsKKwogICAgICAgICBib29sIGlnbm9yZWQ7Ci0gICAgICAg
IHJldHVybiB0b1VJbnQzMlNsb3dDYXNlKHRvTnVtYmVyKGV4ZWMpLCBpZ25vcmVkKTsKKyAgICAg
ICAgcmV0dXJuIHRvVUludDMyU2xvd0Nhc2UodmFsLCBpZ25vcmVkKTsKICAgICB9CiAKICAgICBp
bmxpbmUgaW50MzJfdCBKU1ZhbHVlOjp0b0ludDMyKEV4ZWNTdGF0ZSogZXhlYywgYm9vbCYgb2sp
IGNvbnN0CkBAIC00MTUsNyArNDI3LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
b2sgPSB0cnVlOwogICAgICAgICAgICAgcmV0dXJuIGFzSW50MzIoKTsKICAgICAgICAgfQotICAg
ICAgICByZXR1cm4gdG9JbnQzMlNsb3dDYXNlKHRvTnVtYmVyKGV4ZWMpLCBvayk7CisKKyAgICAg
ICAgZG91YmxlIHZhbCA9IHRvTnVtYmVyKGV4ZWMpOworCisgICAgICAgIGlmICh2YWwgPj0gLTIx
NDc0ODM2NDguMCAmJiB2YWwgPCAyMTQ3NDgzNjQ4LjApIHsKKyAgICAgICAgICAgIG9rID0gdHJ1
ZTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90Pih2YWwpOworICAgICAg
ICB9CisKKyAgICAgICAgcmV0dXJuIHRvSW50MzJTbG93Q2FzZSh2YWwsIG9rKTsKICAgICB9CiAK
ICAgICBpbmxpbmUgdWludDMyX3QgSlNWYWx1ZTo6dG9VSW50MzIoRXhlY1N0YXRlKiBleGVjLCBi
b29sJiBvaykgY29uc3QKQEAgLTQyNCw3ICs0NDQsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgICAgICBvayA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm4gYXNJbnQzMigpOwogICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB0b1VJbnQzMlNsb3dDYXNlKHRvTnVtYmVyKGV4ZWMpLCBvayk7
CisKKyAgICAgICAgZG91YmxlIHZhbCA9IHRvTnVtYmVyKGV4ZWMpOworCisgICAgICAgIGlmICh2
YWwgPj0gMC4wICYmIHZhbCA8IDQyOTQ5NjcyOTYuMCkgeworICAgICAgICAgICAgb2sgPSB0cnVl
OworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90Pih2YWwpOworICAgICAg
ICB9CisKKyAgICAgICAgcmV0dXJuIHRvVUludDMyU2xvd0Nhc2UodmFsLCBvayk7CiAgICAgfQog
CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>