<?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>68118</bug_id>
          
          <creation_ts>2011-09-14 14:16:36 -0700</creation_ts>
          <short_desc>DFG should not speculate that the child of LogicalNot is a boolean if predictions tell us otherwise</short_desc>
          <delta_ts>2011-12-21 14:34:45 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>467336</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-14 14:16:36 -0700</bug_when>
    <thetext>The DFG JIT currently speculates that all LogicalNots always operate over booleans even when they clearly don&apos;t.  Value profiling can tell us if the input value is not a boolean, and we should take advantage of this information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467337</commentid>
    <comment_count>1</comment_count>
      <attachid>107393</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-14 14:17:49 -0700</bug_when>
    <thetext>Created attachment 107393
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467341</commentid>
    <comment_count>2</comment_count>
      <attachid>107393</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-14 14:22:36 -0700</bug_when>
    <thetext>Comment on attachment 107393
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525595</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-21 14:30:14 -0800</bug_when>
    <thetext>Attachment 107393 was posted by a committer and has review+, assigning to Filip Pizlo for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525617</commentid>
    <comment_count>4</comment_count>
      <attachid>107393</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-12-21 14:34:36 -0800</bug_when>
    <thetext>Comment on attachment 107393
the patch

This patch is stale and has been superseded.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107393</attachid>
            <date>2011-09-14 14:17:49 -0700</date>
            <delta_ts>2011-12-21 14:34:36 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>betternot_patch_1.diff</filename>
            <type>text/plain</type>
            <size>6474</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTUxMjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTEtMDktMTQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
Rkcgc2hvdWxkIG5vdCBzcGVjdWxhdGUgdGhhdCB0aGUgY2hpbGQgb2YgTG9naWNhbE5vdCBpcyBh
IGJvb2xlYW4gaWYKKyAgICAgICAgcHJlZGljdGlvbnMgdGVsbCB1cyBvdGhlcndpc2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTE4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZmcvREZHSklUQ29k
ZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6bm9u
U3BlY3VsYXRpdmVMb2dpY2FsTm90KToKKyAgICAgICAgKiBkZmcvREZHSklUQ29kZUdlbmVyYXRv
ci5oOgorICAgICAgICAqIGRmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Tm9uU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUpOgorCiAyMDExLTA5LTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguICBUdXJuIG9mZiB0aWVyZWQgY29tcGlsYXRp
b24uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdl
bmVyYXRvci5jcHAJKHJldmlzaW9uIDk1MTE0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyOCw2ICsxMDI4
LDMzIEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6ZW1pdEJyYW5jaChOb2RlJiAKICAgICB9CiB9
CiAKK3ZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVMb2dpY2FsTm90KE5vZGUm
IG5vZGUpCit7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJnMSh0aGlzLCBub2RlLmNoaWxkMSgpKTsK
KyAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgIAorICAgIEdQUlJlZyBhcmcxR1BS
ID0gYXJnMS5ncHIoKTsKKyAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworICAg
IAorICAgIGFyZzEudXNlKCk7CisgICAgCisgICAgbV9qaXQubW92ZShhcmcxR1BSLCByZXN1bHRH
UFIpOworICAgIG1faml0LnhvclB0cihUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4o
VmFsdWVGYWxzZSkpLCByZXN1bHRHUFIpOworICAgIEpJVENvbXBpbGVyOjpKdW1wIGZhc3RDYXNl
ID0gbV9qaXQuYnJhbmNoVGVzdFB0cihKSVRDb21waWxlcjo6WmVybywgcmVzdWx0R1BSLCBUcnVz
dGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4ofjEpKSk7CisgICAgCisgICAgc2lsZW50U3Bp
bGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKKyAgICBtX2ppdC5tb3ZlKGFyZzFHUFIsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSk7CisgICAgbV9qaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKGRmZ0NvbnZlcnRKU1ZhbHVlVG9Cb29sZWFuKTsKKyAgICBtX2ppdC5tb3ZlKEdQUklu
Zm86OnJldHVyblZhbHVlR1BSLCByZXN1bHRHUFIpOworICAgIHNpbGVudEZpbGxBbGxSZWdpc3Rl
cnMocmVzdWx0R1BSKTsKKyAgICAKKyAgICBmYXN0Q2FzZS5saW5rKCZtX2ppdCk7CisgICAgCisg
ICAgbV9qaXQueG9yUHRyKFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90PihWYWx1ZVRy
dWUpKSwgcmVzdWx0R1BSKTsKKyAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9jb21waWxl
SW5kZXgsIERhdGFGb3JtYXRKU0Jvb2xlYW4sIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7
Cit9CisKIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6ZW1pdENhbGwoTm9kZSYgbm9kZSkKIHsKICAg
ICBQX0RGR09wZXJhdGlvbl9FIHNsb3dDYWxsRnVuY3Rpb247CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gOTUxMTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtNTc4LDYgKzU3OCw4IEBAIHByb3RlY3RlZDoKICAgICAKICAgICB2b2lk
IGVtaXRCcmFuY2goTm9kZSYpOwogICAgIAorICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVMb2dpY2Fs
Tm90KE5vZGUmKTsKKyAgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBhZGRyZXNzT2ZD
YWxsRGF0YShpbnQgaWR4KQogICAgIHsKICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCAobV9qaXQuY29kZUJsb2NrKCktPm1f
bnVtQ2FsbGVlUmVnaXN0ZXJzICsgaWR4KSAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lz
dGVyKSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2
ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb25T
cGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDk1MTE0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3Nywy
OSArNzc3LDcgQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShTcGVjdWxhdAogICAg
IH0KIAogICAgIGNhc2UgTG9naWNhbE5vdDogewotICAgICAgICBKU1ZhbHVlT3BlcmFuZCBhcmcx
KHRoaXMsIG5vZGUuY2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMp
OwotICAgICAgICAKLSAgICAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwotICAgICAg
ICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwotICAgICAgICAKLSAgICAgICAgYXJn
MS51c2UoKTsKLQotICAgICAgICBtX2ppdC5tb3ZlKGFyZzFHUFIsIHJlc3VsdEdQUik7Ci0gICAg
ICAgIG1faml0LnhvclB0cihUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oVmFsdWVG
YWxzZSkpLCByZXN1bHRHUFIpOwotICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBmYXN0Q2FzZSA9
IG1faml0LmJyYW5jaFRlc3RQdHIoSklUQ29tcGlsZXI6Olplcm8sIHJlc3VsdEdQUiwgVHJ1c3Rl
ZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KH4xKSkpOwotICAgICAgICAKLSAgICAgICAgc2ls
ZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BSKTsKLSAgICAgICAgbV9qaXQubW92ZShhcmcx
R1BSLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGRmZ0NvbnZlcnRKU1ZhbHVlVG9Cb29sZWFuKTsKLSAg
ICAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0R1BSKTsKLSAg
ICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOwotICAgICAgICAKLSAgICAg
ICAgZmFzdENhc2UubGluaygmbV9qaXQpOwotCi0gICAgICAgIG1faml0LnhvclB0cihUcnVzdGVk
SW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oVmFsdWVUcnVlKSksIHJlc3VsdEdQUik7Ci0gICAg
ICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBtX2NvbXBpbGVJbmRleCwgVXNlQ2hpbGRyZW5D
YWxsZWRFeHBsaWNpdGx5KTsKKyAgICAgICAgbm9uU3BlY3VsYXRpdmVMb2dpY2FsTm90KG5vZGUp
OwogICAgICAgICBicmVhazsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiA5NTExNCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDQ3LDE2ICsxMDQ3LDIzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSYgbm9kZSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLmNoaWxkMSgpKTsKLSAgICAgICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsgLy8gRklYTUU6IFdlIGNvdWxkIHJldXNlLCBidXQgb24g
c3BlY3VsYXRpb24gZmFpbCB3b3VsZCBuZWVkIHJlY292ZXJ5IHRvIHJlc3RvcmUgdGFnIChha2lu
IHRvIGFkZCkuCi0KLSAgICAgICAgbV9qaXQubW92ZSh2YWx1ZS5ncHIoKSwgcmVzdWx0Lmdwcigp
KTsKLSAgICAgICAgbV9qaXQueG9yUHRyKFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90
PihWYWx1ZUZhbHNlKSksIHJlc3VsdC5ncHIoKSk7Ci0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
bV9qaXQuYnJhbmNoVGVzdFB0cihKSVRDb21waWxlcjo6Tm9uWmVybywgcmVzdWx0LmdwcigpLCBU
cnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4ofjEpKSkpOwotICAgICAgICBtX2ppdC54
b3JQdHIoVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KFZhbHVlVHJ1ZSkpLCByZXN1
bHQuZ3ByKCkpOwotCi0gICAgICAgIC8vIElmIHdlIGFkZCBhIERhdGFGb3JtYXRCb29sLCB3ZSBz
aG91bGQgdXNlIGl0IGhlcmUuCi0gICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBt
X2NvbXBpbGVJbmRleCwgRGF0YUZvcm1hdEpTQm9vbGVhbik7CisgICAgICAgIFByZWRpY3RlZFR5
cGUgcHJlZGljdGlvbiA9IG1faml0LmdyYXBoKCkuZ2V0UHJlZGljdGlvbihtX2ppdC5ncmFwaCgp
W25vZGUuY2hpbGQxKCldKTsKKyAgICAgICAgaWYgKGlzQm9vbGVhblByZWRpY3Rpb24ocHJlZGlj
dGlvbikgfHwgIWlzU3Ryb25nUHJlZGljdGlvbihwcmVkaWN0aW9uKSkgeworICAgICAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS5jaGlsZDEoKSk7CisgICAgICAgICAgICBH
UFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOyAvLyBGSVhNRTogV2UgY291bGQgcmV1c2UsIGJ1dCBv
biBzcGVjdWxhdGlvbiBmYWlsIHdvdWxkIG5lZWQgcmVjb3ZlcnkgdG8gcmVzdG9yZSB0YWcgKGFr
aW4gdG8gYWRkKS4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZS5n
cHIoKSwgcmVzdWx0LmdwcigpKTsKKyAgICAgICAgICAgIG1faml0LnhvclB0cihUcnVzdGVkSW1t
MzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oVmFsdWVGYWxzZSkpLCByZXN1bHQuZ3ByKCkpOworICAg
ICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhtX2ppdC5icmFuY2hUZXN0UHRyKEpJVENvbXBpbGVy
OjpOb25aZXJvLCByZXN1bHQuZ3ByKCksIFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90
Pih+MSkpKSk7CisgICAgICAgICAgICBtX2ppdC54b3JQdHIoVHJ1c3RlZEltbTMyKHN0YXRpY19j
YXN0PGludDMyX3Q+KFZhbHVlVHJ1ZSkpLCByZXN1bHQuZ3ByKCkpOworICAgICAgICAgICAgCisg
ICAgICAgICAgICAvLyBJZiB3ZSBhZGQgYSBEYXRhRm9ybWF0Qm9vbCwgd2Ugc2hvdWxkIHVzZSBp
dCBoZXJlLgorICAgICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG1fY29tcGls
ZUluZGV4LCBEYXRhRm9ybWF0SlNCb29sZWFuKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBub25TcGVjdWxhdGl2ZUxvZ2ljYWxOb3Qobm9kZSk7Cisg
ICAgICAgIAogICAgICAgICBicmVhazsKICAgICB9CiAK
</data>
<flag name="review"
          id="104084"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>