<?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>73515</bug_id>
          
          <creation_ts>2011-11-30 20:29:35 -0800</creation_ts>
          <short_desc>32 bit DFG should handle logicalNot slow case instead of simply bailing out</short_desc>
          <delta_ts>2011-11-30 21:39:17 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Yuqiang Xian">yuqiang.xian</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>zheng.z.liu</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>512391</commentid>
    <comment_count>0</comment_count>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-11-30 20:29:35 -0800</bug_when>
    <thetext>Some cases don&apos;t benefit from DFG due to this, e.g. imaging-desaturate in Kraken benchmark. 64 bit DFG handles the slow case so should the 32 bit DFG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512395</commentid>
    <comment_count>1</comment_count>
      <attachid>117319</attachid>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-11-30 20:35:23 -0800</bug_when>
    <thetext>Created attachment 117319
the patch

11% on Kraken, mostly due to 3X on imaging-desaturate, tested on Linux ia32.

VMs tested:
&quot;TipOfTree&quot; at /home/yxian/WebKit_orig/WebKitBuild/Release/Source/JavaScriptCore/shell/jsc_efl
&quot;LogicalNotFix&quot; at /mnt/supplement/WebKit/WebKitBuild/Release_efl/Source/JavaScriptCore/shell/jsc_efl

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.

                                            TipOfTree             LogicalNotFix                                  
SunSpider:
   3d-cube                                8.1618+-0.0375          8.1486+-0.0308       
   3d-morph                              10.2725+-0.0570    ?    10.2857+-0.0470       ?
   3d-raytrace                            9.5796+-0.0393    ?     9.5859+-0.0447       ?
   access-binary-trees                    1.8881+-0.0328          1.8811+-0.0320       
   access-fannkuch                        9.5226+-0.0440    ?     9.5402+-0.0391       ?
   access-nbody                           5.3372+-0.0442    ?     5.3480+-0.0443       ?
   access-nsieve                          3.7130+-0.0260          3.7116+-0.0135       
   bitops-3bit-bits-in-byte               1.1662+-0.0346          1.1603+-0.0305       
   bitops-bits-in-byte                    4.6981+-0.0244          4.6803+-0.0386       
   bitops-bitwise-and                     4.2485+-0.0207    ?     4.2492+-0.0316       ?
   bitops-nsieve-bits                     6.6778+-0.0717          6.6761+-0.0932       
   controlflow-recursive                  2.9437+-0.0433    ?     2.9470+-0.0360       ?
   crypto-aes                             9.8420+-0.0631          9.8275+-0.0616       
   crypto-md5                             3.5909+-0.0354    ?     3.6206+-0.1322       ?
   crypto-sha1                            2.8283+-0.0449    ?     2.8637+-0.0817       ? might be 1.0125x slower
   date-format-tofte                     11.7751+-0.0254    ?    11.7969+-0.0439       ?
   date-format-xparb                     11.7065+-0.7856         11.4490+-0.0504         might be 1.0225x faster
   math-cordic                            9.1791+-0.0381          9.1594+-0.0408       
   math-partial-sums                     14.0202+-0.0616    ?    14.0333+-0.0477       ?
   math-spectral-norm                     2.5369+-0.0418          2.5229+-0.0312       
   regexp-dna                            11.9206+-0.0589         11.9128+-0.0532       
   string-base64                          5.3255+-0.9732          4.9179+-0.0486         might be 1.0829x faster
   string-fasta                          10.5078+-0.0505    ?    10.5130+-0.0682       ?
   string-tagcloud                       15.7834+-0.0443    ?    15.8327+-0.0587       ?
   string-unpack-code                    27.0578+-0.1549    !    27.3788+-0.0555       ! definitely 1.0119x slower
   string-validate-input                  7.2393+-0.0398    ^     7.1573+-0.0247       ^ definitely 1.0115x faster

   &lt;arithmetic&gt; *                         8.1355+-0.0508          8.1231+-0.0184       
   &lt;geometric&gt;                            6.4627+-0.0374          6.4467+-0.0172       
   &lt;harmonic&gt;                             4.9004+-0.0295          4.8889+-0.0210       

                                            TipOfTree             LogicalNotFix                                  
V8:
   crypto                                91.9812+-0.2116    ?    92.2728+-0.4610       ?
   deltablue                            170.0262+-1.4669        168.1956+-0.9159         might be 1.0109x faster
   earley-boyer                         132.5798+-0.1362        132.4307+-0.1731       
   raytrace                              61.5676+-0.7737         61.1889+-0.4651       
   regexp                               128.2276+-0.2859    ?   128.6608+-0.2597       ?
   richards                             174.9580+-1.1185    ?   175.3891+-0.8095       ?
   splay                                126.1295+-0.5243    ?   126.3526+-0.4069       ?

   &lt;arithmetic&gt;                         126.4957+-0.3242        126.3558+-0.3078       
   &lt;geometric&gt; *                        120.1337+-0.3239        120.0105+-0.3233       
   &lt;harmonic&gt;                           112.9274+-0.4164        112.7808+-0.3782       

                                            TipOfTree             LogicalNotFix                                  
Kraken:
   ai-astar                             784.3388+-1.9146        782.6245+-0.8761       
   audio-beat-detection                 386.8216+-5.0720        386.7333+-5.8225       
   audio-dft                            352.7186+-1.6542    ?   354.1336+-2.2658       ?
   audio-fft                            245.5192+-2.5617        243.8729+-0.3570       
   audio-oscillator                     343.1407+-3.1949    ?   343.5626+-3.2825       ?
   imaging-darkroom                     403.2555+-3.8355        402.5282+-3.5365       
   imaging-desaturate                   886.6465+-1.1722    ^   289.1595+-1.3942       ^ definitely 3.0663x faster
   imaging-gaussian-blur                689.2448+-0.2488    ?   695.2369+-9.1836       ?
   json-parse-financial                  73.2286+-0.4407    ?    73.3883+-0.5363       ?
   json-stringify-tinderbox             124.6627+-0.2702        124.2101+-0.2466       
   stanford-crypto-aes                  130.9747+-0.2462    ?   131.8741+-0.6689       ?
   stanford-crypto-ccm                  131.4426+-0.4566        130.7399+-0.6726       
   stanford-crypto-pbkdf2               278.4486+-1.4559        278.4281+-0.5915       
   stanford-crypto-sha256-iterative     109.1965+-0.2393    ?   109.3319+-0.6886       ?

   &lt;arithmetic&gt; *                       352.8314+-0.4333    ^   310.4160+-0.8423       ^ definitely 1.1366x faster
   &lt;geometric&gt;                          269.4075+-0.4093    ^   248.7556+-0.4644       ^ definitely 1.0830x faster
   &lt;harmonic&gt;                           204.6334+-0.3938    ^   197.9293+-0.4193       ^ definitely 1.0339x faster

                                            TipOfTree             LogicalNotFix                                  
All benchmarks:
   &lt;arithmetic&gt;                         128.4390+-0.1227    ^   115.7769+-0.2885       ^ definitely 1.1094x faster
   &lt;geometric&gt;                           30.3388+-0.0994    ^    29.5816+-0.0617       ^ definitely 1.0256x faster
   &lt;harmonic&gt;                             8.6458+-0.0509          8.6223+-0.0362       

                                            TipOfTree             LogicalNotFix                                  
Geomean of preferred means:
   &lt;scaled-result&gt;                       70.1239+-0.1509    ^    67.1367+-0.1453       ^ definitely 1.0445x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512398</commentid>
    <comment_count>2</comment_count>
      <attachid>117319</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-30 20:37:20 -0800</bug_when>
    <thetext>Comment on attachment 117319
the patch

r=me  Impressive speed-up! :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512412</commentid>
    <comment_count>3</comment_count>
    <who name="Yuqiang Xian">yuqiang.xian</who>
    <bug_when>2011-11-30 21:01:58 -0800</bug_when>
    <thetext>Landed as r101598: http://trac.webkit.org/changeset/101598</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512442</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-11-30 21:39:17 -0800</bug_when>
    <thetext>Woohoo!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117319</attachid>
            <date>2011-11-30 20:35:23 -0800</date>
            <delta_ts>2011-11-30 21:02:19 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>73515.patch</filename>
            <type>text/plain</type>
            <size>3203</size>
            <attacher name="Yuqiang Xian">yuqiang.xian</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTAxNTk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDExLTExLTMwICBZdXFpYW5nIFhpYW4gIDx5dXFpYW5nLnhpYW5AaW50ZWwuY29tPgorCisg
ICAgICAgIDMyIGJpdCBERkcgc2hvdWxkIGhhbmRsZSBsb2dpY2FsTm90IHNsb3cgY2FzZSBpbnN0
ZWFkIG9mIHNpbXBseSBiYWlsaW5nIG91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGltcHJvdmVzIEtyYWtlbiBwZXJmb3JtYW5jZSBieSAxMSUs
IG1haW5seSBkdWUgdG8gfjNYIGltcHJvdmVtZW50CisgICAgICAgIG9uIGltYWdpbmctZGVzYXR1
cmF0ZS4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvZ2ljYWxOb3QpOgorCiAyMDEx
LTExLTMwICBNYXggVnVqb3ZpYyAgPG12dWpvdmljQGFkb2JlLmNvbT4KIAogICAgICAgICBTb21l
IGRhdGUgdmFsdWVzIG5vdCBoYW5kbGVkIGNvbnNpc3RlbnRseSB3aXRoIElFL0ZpcmVmb3gKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAkocmV2aXNpb24gMTAxNTk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg3NSwzMSAr
MTg3NSwyMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTG9naWNhbE5vdChOCiAgICAg
ICAgIGJvb2xlYW5SZXN1bHQocmVzdWx0UGF5bG9hZC5ncHIoKSwgbV9jb21waWxlSW5kZXgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAotICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRo
aXMsIG5vZGUuY2hpbGQxKCkpOwotICAgIEdQUlRlbXBvcmFyeSByZXN1bHRQYXlsb2FkKHRoaXMs
IHZhbHVlLCBmYWxzZSk7Ci0gICAgc3BlY3VsYXRpb25DaGVjayhKU1ZhbHVlUmVncyh2YWx1ZS50
YWdHUFIoKSwgdmFsdWUucGF5bG9hZEdQUigpKSwgbm9kZS5jaGlsZDEoKSwgbV9qaXQuYnJhbmNo
MzIoSklUQ29tcGlsZXI6Ok5vdEVxdWFsLCB2YWx1ZS50YWdHUFIoKSwgVHJ1c3RlZEltbTMyKEpT
VmFsdWU6OkJvb2xlYW5UYWcpKSk7Ci0gICAgbV9qaXQubW92ZSh2YWx1ZS5wYXlsb2FkR1BSKCks
IHJlc3VsdFBheWxvYWQuZ3ByKCkpOwotICAgIG1faml0LnhvcjMyKFRydXN0ZWRJbW0zMigxKSwg
cmVzdWx0UGF5bG9hZC5ncHIoKSk7Ci0gICAgYm9vbGVhblJlc3VsdChyZXN1bHRQYXlsb2FkLmdw
cigpLCBtX2NvbXBpbGVJbmRleCk7CiAKLSAgICAvLyBUaGlzIGNvZGUgaXMgbW92ZWQgZnJvbSBu
b25TcGVjdWxhdGl2ZUxvZ2ljYWxOb3QsIGN1cnJlbnRseSB1bnVzZWQhCi0jaWYgMAogICAgIEpT
VmFsdWVPcGVyYW5kIGFyZzEodGhpcywgbm9kZS5jaGlsZDEoKSk7Ci0gICAgR1BSVGVtcG9yYXJ5
IHJlc3VsdFRhZyh0aGlzLCBhcmcxKTsKICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0UGF5bG9hZCh0
aGlzLCBhcmcxLCBmYWxzZSk7CiAgICAgR1BSUmVnIGFyZzFUYWdHUFIgPSBhcmcxLnRhZ0dQUigp
OwogICAgIEdQUlJlZyBhcmcxUGF5bG9hZEdQUiA9IGFyZzEucGF5bG9hZEdQUigpOwotICAgIEdQ
UlJlZyByZXN1bHRUYWdHUFIgPSByZXN1bHRUYWcuZ3ByKCk7CiAgICAgR1BSUmVnIHJlc3VsdFBh
eWxvYWRHUFIgPSByZXN1bHRQYXlsb2FkLmdwcigpOwogICAgICAgICAKICAgICBhcmcxLnVzZSgp
OwogCiAgICAgSklUQ29tcGlsZXI6Okp1bXAgZmFzdENhc2UgPSBtX2ppdC5icmFuY2gzMihKSVRD
b21waWxlcjo6RXF1YWwsIGFyZzFUYWdHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFu
VGFnKSk7CiAgICAgICAgIAotICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFRhZ0dQ
UiwgcmVzdWx0UGF5bG9hZEdQUik7CisgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0
UGF5bG9hZEdQUik7CiAgICAgY2FsbE9wZXJhdGlvbihkZmdDb252ZXJ0SlNWYWx1ZVRvQm9vbGVh
biwgcmVzdWx0UGF5bG9hZEdQUiwgYXJnMVRhZ0dQUiwgYXJnMVBheWxvYWRHUFIpOwotICAgIHNp
bGVudEZpbGxBbGxSZWdpc3RlcnMocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSKTsKKyAg
ICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFBheWxvYWRHUFIpOwogICAgIEpJVENvbXBp
bGVyOjpKdW1wIGRvTm90ID0gbV9qaXQuanVtcCgpOwogICAgICAgICAKICAgICBmYXN0Q2FzZS5s
aW5rKCZtX2ppdCk7CkBAIC0xOTA3LDkgKzE4OTYsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlTG9naWNhbE5vdChOCiAKICAgICBkb05vdC5saW5rKCZtX2ppdCk7CiAgICAgbV9qaXQu
eG9yMzIoVHJ1c3RlZEltbTMyKDEpLCByZXN1bHRQYXlsb2FkR1BSKTsKLSAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpCb29sZWFuVGFnKSwgcmVzdWx0VGFnR1BSKTsKLSAgICBq
c1ZhbHVlUmVzdWx0KHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgbV9jb21waWxlSW5k
ZXgsIERhdGFGb3JtYXRKU0Jvb2xlYW4sIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7Ci0j
ZW5kaWYKKyAgICBib29sZWFuUmVzdWx0KHJlc3VsdFBheWxvYWRHUFIsIG1fY29tcGlsZUluZGV4
LCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklU
OjplbWl0T2JqZWN0T3JPdGhlckJyYW5jaChOb2RlSW5kZXggbm9kZUluZGV4LCBCbG9ja0luZGV4
IHRha2VuLCBCbG9ja0luZGV4IG5vdFRha2VuLCB2b2lkICp2cHRyLCBib29sIG5lZWRTcGVjdWxh
dGlvbkNoZWNrKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>