<?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>151852</bug_id>
          
          <creation_ts>2015-12-03 23:33:27 -0800</creation_ts>
          <short_desc>[JSC] Extend the strength reduction of B3&apos;s BitAnd with booleans</short_desc>
          <delta_ts>2015-12-14 18:18:10 -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>New Bugs</component>
          <version>WebKit 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>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1146226</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-03 23:33:27 -0800</bug_when>
    <thetext>[JSC] Extend the strength reduction of B3&apos;s BitAnd with booleans</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146227</commentid>
    <comment_count>1</comment_count>
      <attachid>266606</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-12-03 23:35:15 -0800</bug_when>
    <thetext>Created attachment 266606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146239</commentid>
    <comment_count>2</comment_count>
      <attachid>266606</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-04 00:59:07 -0800</bug_when>
    <thetext>Comment on attachment 266606
Patch

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

r=me

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:578
&gt; +                &amp;&amp; m_value-&gt;child(0)-&gt;child(1)-&gt;asInt() &amp; 1

I think you could also do: &quot;m_value-&gt;child(0)-&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146240</commentid>
    <comment_count>3</comment_count>
      <attachid>266606</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-04 01:00:00 -0800</bug_when>
    <thetext>Comment on attachment 266606
Patch

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

&gt;&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:578
&gt;&gt; +                &amp;&amp; m_value-&gt;child(0)-&gt;child(1)-&gt;asInt() &amp; 1
&gt; 
&gt; I think you could also do: &quot;m_value-&gt;child(0)-&gt;

Oops I meant to delete that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146366</commentid>
    <comment_count>4</comment_count>
      <attachid>266606</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-04 12:31:29 -0800</bug_when>
    <thetext>Comment on attachment 266606
Patch

Clearing flags on attachment: 266606

Committed r193436: &lt;http://trac.webkit.org/changeset/193436&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146367</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-04 12:31:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149167</commentid>
    <comment_count>6</comment_count>
      <attachid>266606</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-12-14 18:18:10 -0800</bug_when>
    <thetext>Comment on attachment 266606
Patch

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

&gt; Source/JavaScriptCore/b3/B3ReduceStrength.cpp:869
&gt; +            // Turn this: Branch(BitAnd(bool, xyb1), then, else)
&gt; +            // Into this: Branch(bool, then, else)
&gt; +            if (branch-&gt;child(0)-&gt;opcode() == BitAnd
&gt; +                &amp;&amp; branch-&gt;child(0)-&gt;child(1)-&gt;hasInt()
&gt; +                &amp;&amp; branch-&gt;child(0)-&gt;child(1)-&gt;asInt() &amp; 1
&gt; +                &amp;&amp; branch-&gt;child(0)-&gt;child(0)-&gt;returnsBool()) {
&gt; +                branch-&gt;child(0) = branch-&gt;child(0)-&gt;child(0);
&gt; +                m_changed = true;
&gt; +            }
&gt; +

You could have made this a rule that converts BitAnd(bool, xyb1) to bool, regardless of the user of the BitAnd.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266606</attachid>
            <date>2015-12-03 23:35:15 -0800</date>
            <delta_ts>2015-12-04 12:31:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151852-20151203233450.patch</filename>
            <type>text/plain</type>
            <size>5262</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzNDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZDgzMWVjOWU0NWYzZmU3Y2FiMWU5ZjVhMTllNzJjODVkMjBhNzllLi4xYzA5YTQ0NGMxNDg3MWNj
Yzc4M2U1YTZiMmY3OGI0MGNlZDFlMWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNS0xMi0wMyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBFeHRlbmQgdGhlIHN0cmVuZ3RoIHJlZHVjdGlvbiBvZiBC
MydzIEJpdEFuZCB3aXRoIGJvb2xlYW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTE4NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAxKSBNYXNraW5nIGEgYm9vbGVhbiB3aXRoIGFueSBwYXR0ZXJuIHRo
YXQgaGFzIHRoZSBsc2Igc2V0CisgICAgICAgICAgIHJlbWFpbnMgYSBib29sZWFuLgorICAgICAg
ICAyKSBSZWR1Y2VTdHJlbmd0aCBvbiB0aGF0IHBhcnRpY3VsYXIgcGF0dGVybiBvZiBCaXRBbmQu
CisKKyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcDoKKyAgICAgICAgKiBiMy9CM1Zh
bHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpyZXR1cm5zQm9vbCk6CisgICAgICAg
ICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRXaXRoTWFza1Jl
dHVybnNCb29sZWFucyk6CisgICAgICAgIChKU0M6OkIzOjpydW4pOgorCiAyMDE1LTEyLTAzICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQjMgUGF0Y2hwb2ludCBh
bmQgQ2hlY2sgb3Bjb2RlcyBzaG91bGQgYmUgYWJsZSB0byBzcGVjaWZ5IFdhcm1BbnksIENvbGRB
bnksIGFuZCBMYXRlQ29sZEFueQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUmVkdWNlU3RyZW5ndGguY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNl
U3RyZW5ndGguY3BwCmluZGV4IGY5NmE2NDg5N2ZlMzQ4NmQzNDllNzA2OWJmZmQ4M2VmYTU2MTEw
MTYuLjhjMjc2NGYwYjRjZDVjNjFmYmQzNTZhOTEzNzVlNDEwYmZjMmFkMDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKQEAgLTU3MSw2ICs1NzEs
MTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAor
ICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBTZWxlY3QoQml0QW5kKGJvb2wsIHh5ejEpLCBhLCBi
KQorICAgICAgICAgICAgLy8gSW50byB0aGlzOiBTZWxlY3QoYm9vbCwgYSwgYikKKyAgICAgICAg
ICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCisgICAgICAgICAg
ICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAg
ICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKKyAgICAg
ICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkp
IHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDAp
LT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6
IFNlbGVjdChzdHVmZiwgeCwgeCkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogeAogICAgICAg
ICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDEpID09IG1fdmFsdWUtPmNoaWxkKDIpKSB7CkBAIC04
NDUsNyArODU2LDE3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgc3RkOjpzd2FwKGJyYW5j
aC0+dGFrZW4oKSwgYnJhbmNoLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5n
ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCisKKyAgICAgICAgICAgIC8v
IFR1cm4gdGhpczogQnJhbmNoKEJpdEFuZChib29sLCB4eWIxKSwgdGhlbiwgZWxzZSkKKyAgICAg
ICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKGJvb2wsIHRoZW4sIGVsc2UpCisgICAgICAgICAg
ICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCisgICAgICAgICAgICAg
ICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhhc0ludCgpCisgICAgICAgICAgICAg
ICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmFzSW50KCkgJiAxCisgICAgICAgICAg
ICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKKyAg
ICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQo
MCk7CisgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKwog
ICAgICAgICAgICAgVHJpU3RhdGUgdHJpU3RhdGUgPSBicmFuY2gtPmNoaWxkKDApLT5hc1RyaVN0
YXRlKCk7CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKDAsIHRoZW4sIGVsc2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKaW5kZXggYTZkYTNkODliZDAzYzQ4Mjll
ODZlNDBiMTg3ZjNjMzdhMGJiMzhkYy4uNDAxNmU3NTRlZTc5MTk4NGRjOGNiMDZjNzMwZjc0YzZh
MGExMDNjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcApAQCAtMjY2LDcgKzI2
Niw3IEBAIGJvb2wgVmFsdWU6OnJldHVybnNCb29sKCkgY29uc3QKICAgICBjYXNlIENvbnN0MzI6
CiAgICAgICAgIHJldHVybiBhc0ludDMyKCkgPT0gMCB8fCBhc0ludDMyKCkgPT0gMTsKICAgICBj
YXNlIEJpdEFuZDoKLSAgICAgICAgcmV0dXJuIGNoaWxkKDEpLT5pc0ludDMyKDEpOworICAgICAg
ICByZXR1cm4gY2hpbGQoMSktPmhhc0ludCgpICYmIGNoaWxkKDEpLT5hc0ludCgpICYgMTsKICAg
ICBjYXNlIEVxdWFsOgogICAgIGNhc2UgTm90RXF1YWw6CiAgICAgY2FzZSBMZXNzVGhhbjoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKaW5kZXggM2NhMGM4MDBlMGNjMzNhZTY1ZWM0ZDY3
NjkyZjI0YmNlNWMxYjMxNS4uZDVlYjViZTZmNmJiN2MyMmY2NTc5OWI2MGU4ZDU1ODIzNzVhMGQ3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKQEAgLTk5OCw2ICs5OTgsMjkgQEAg
dm9pZCB0ZXN0Qml0QW5kSW1tQml0QW5kQXJnSW1tMzIoaW50IGEsIGludCBiLCBpbnQgYykKICAg
ICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYikgPT0gKGEgJiAoYiAmIGMpKSk7CiB9
CiAKK3ZvaWQgdGVzdEJpdEFuZFdpdGhNYXNrUmV0dXJuc0Jvb2xlYW5zKGludDY0X3QgYSwgaW50
NjRfdCBiKQoreworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgVmFsdWUqIGFyZzAgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAg
VmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgVmFsdWUqIGVxdWFsID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOworICAg
IFZhbHVlKiBtYXNrZWRFcXVhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5k
LCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDB4NSksCisgICAgICAgIGVxdWFsKTsKKyAgICBWYWx1ZSogaW52ZXJ0ZWQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdFhvciwgT3JpZ2luKCksCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAweDEpLAorICAgICAg
ICBtYXNrZWRFcXVhbCk7CisgICAgVmFsdWUqIHNlbGVjdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgU2VsZWN0LCBPcmlnaW4oKSwgaW52ZXJ0ZWQsCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MiksCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtNSkpOworCisgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2VsZWN0KTsK
KworICAgIGludDY0X3QgZXhwZWN0ZWQgPSAoYSA9PSBiKSA/IC01IDogNDI7CisgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCBiKSA9PSBleHBlY3RlZCk7Cit9CisKIHZv
aWQgdGVzdEJpdE9yQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKQEAgLTU3ODEsNiArNTgwNCw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikK
ICAgICBSVU4odGVzdEJpdEFuZEltbUJpdEFuZEFyZ0ltbTMyKDcsIDIsIDMpKTsKICAgICBSVU4o
dGVzdEJpdEFuZEltbUJpdEFuZEFyZ0ltbTMyKDYsIDEsIDYpKTsKICAgICBSVU4odGVzdEJpdEFu
ZEltbUJpdEFuZEFyZ0ltbTMyKDI0LCAweGZmZmYsIDcpKTsKKyAgICBSVU5fQklOQVJZKHRlc3RC
aXRBbmRXaXRoTWFza1JldHVybnNCb29sZWFucywgaW50NjRPcGVyYW5kcygpLCBpbnQ2NE9wZXJh
bmRzKCkpOwogCiAgICAgUlVOKHRlc3RCaXRPckFyZ3MoNDMsIDQzKSk7CiAgICAgUlVOKHRlc3RC
aXRPckFyZ3MoNDMsIDApKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>