<?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>150775</bug_id>
          
          <creation_ts>2015-11-01 09:19:09 -0800</creation_ts>
          <short_desc>B3::LowerToAir should do copy propagation</short_desc>
          <delta_ts>2015-11-03 14:05:02 -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>WebKit 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>
          
          <blocked>150279</blocked>
    
    <blocked>150845</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1138325</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-01 09:19:09 -0800</bug_when>
    <thetext>For example, the Trunc value in B3 is really just an identity in Air.  Currently we emit a Move.  But, it would be more efficient to copy propagate: just set the tmp of the Trunc to the tmp of the input.

We could do similar things for ZExt and SExt.  For ZExt, we could record if the tmp for the input value was produced by an instruction that already zero-extends.  For SExt, we could record if the tmp for the input value was produced by an instruction that already sign-extends.  For both of them, we could also use an analysis of whether the input is non-negative.  If so, the we could copy-propagate through ZExt and SExt provided that the source either zero- or sign-extended.  For example, we could copy-prop through a SExt if the source zero-extended and the value is proved non-negative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138326</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-01 09:20:45 -0800</bug_when>
    <thetext>Interestingly though, we may not need to do anything special for SExt.  The FTL is already smart enough to use ZExt in all those cases where the input is non-negative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139015</commentid>
    <comment_count>2</comment_count>
      <attachid>264709</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-03 12:24:06 -0800</bug_when>
    <thetext>Created attachment 264709
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139016</commentid>
    <comment_count>3</comment_count>
      <attachid>264710</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-03 12:27:10 -0800</bug_when>
    <thetext>Created attachment 264710
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139040</commentid>
    <comment_count>4</comment_count>
      <attachid>264710</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-11-03 13:13:53 -0800</bug_when>
    <thetext>Comment on attachment 264710
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139068</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-03 14:05:02 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/191977</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264709</attachid>
            <date>2015-11-03 12:24:06 -0800</date>
            <delta_ts>2015-11-03 12:27:10 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>6951</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxOTY1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDE1LTExLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QjM6Okxvd2VyVG9BaXIgc2hvdWxkIGRvIGNvcHkgcHJvcGFnYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDc3NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoYXQgd2UgYXJlIHRyeWluZyB0byBk
byBpcyByZW1vdmUgdGhlIHVubmVjZXNzYXJ5IE1vdmUncyBhbmQgTW92ZTMyJ3MgZnJvbSBUcnVu
YyBhbmQgWkV4dDMyLgorICAgICAgICBZb3UgY291bGQgdGhpbmsgb2YgdGhpcyBhcyBhbiBBaXIg
b3B0aW1pemF0aW9uLCBhbmQgaW5kZWVkLCBBaXIgaXMgcG93ZXJmdWwgZW5vdWdoIHRoYXQgd2UK
KyAgICAgICAgY291bGQgd3JpdGUgYSBwaGFzZSB0aGF0IGRvZXMgY29weSBwcm9wYWdhdGlvbiB0
aHJvdWdoIE1vdmUncyBhbmQgTW92ZTMyJ3MuIEZvciBNb3ZlMzIncyBpdAorICAgICAgICB3b3Vs
ZCBvbmx5IGNvcHktcHJvcGFnYXRlIGlmIGl0IHByb3ZlZCB0aGF0IHRoZSB2YWx1ZSB3YXMgYWxy
ZWFkeSB6ZXJvLWV4dGVuZGVkLiBXZSBjb3VsZAorICAgICAgICBrbm93IHRoaXMgYnkganVzdCBh
ZGRpbmcgYSBEZWYzMiByb2xlIHRvIEFpci4KKworICAgICAgICBCdXQgdGhpcyBwYXRjaCB0YWtl
cyBhIGRpZmZlcmVudCBhcHByb2FjaDogd2UgZW5zdXJlIHRoYXQgd2UgZG9uJ3QgZ2VuZXJhdGUg
c3VjaCByZWR1bmRhbnQKKyAgICAgICAgTW92ZSdzIGFuZCBNb3ZlMzIncyB0byBiZWdpbiB3aXRo
LiBUaGUgcmVhc29uIGlzIHRoYXQgaXQncyBtdWNoIGNoZWFwZXIgdG8gZG8gYW5hbHlzaXMgb3Zl
cgorICAgICAgICBCMyB0aGFuIG92ZXIgQWlyLiBTbywgd2hlbmV2ZXIgcG9zc2libGUsIGFuZCBv
cHRpbWl6YXRpb24gc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIEIzLiBJbgorICAgICAgICB0aGlz
IGNhc2UgdGhlIG9wdGltaXphdGlvbiBjYW4ndCBxdWl0ZSBiZSBpbXBsZW1lbnRlZCBpbiBCMyBi
ZWNhdXNlIHlvdSBjYW5ub3QgcmVtb3ZlIGEgVHJ1bmMKKyAgICAgICAgb3IgWkV4dDMyIHdpdGhv
dXQgdmlvbGF0aW5nIHRoZSBCMyB0eXBlIHN5c3RlbS4gU28sIHRoZSBiZXN0IHBsYWNlIHRvIGRv
IHRoaXMgb3B0aW1pemF0aW9uIGlzCisgICAgICAgIGR1cmluZyBsb3dlcmluZzogd2UgY2FuIHVz
ZSBCMyBmb3Igb3VyIGFuYWx5c2lzIGFuZCB3ZSBjYW4gdXNlIEFpciB0byBleHByZXNzIHRoZQor
ICAgICAgICB0cmFuc2Zvcm1hdGlvbi4KKworICAgICAgICBDb3B5IHByb3BhZ2F0aW5nIGR1cmlu
ZyBCMy0+QWlyIGxvd2VyaW5nIGlzIG5hdHVyYWwgYmVjYXVzZSB3ZSBhcmUgY3JlYXRpbmcgIlNT
QS1saWtlIiBUbXBzCisgICAgICAgIGZyb20gdGhlIEIzIFZhbHVlcy4gVGhleSBhcmUgU1NBLWxp
a2UgaW4gdGhlIHNlbnNlIHRoYXQgZXhjZXB0IHRoZSB0bXAgZm9yIGEgUGhpLCB3ZSBrbm93Cisg
ICAgICAgIHRoYXQgdGhlIFRtcCB3aWxsIGJlIGFzc2lnbmVkIG9uY2UgYW5kIHRoYXQgdGhlIGFz
c2lnbm1lbnQgd2lsbCBkb21pbmF0ZSBhbGwgdXNlcy4gU28sIGlmIHdlCisgICAgICAgIHNlZSBh
biBvcGVyYXRpb24gbGlrZSBUcnVuYyB0aGF0IGlzIHNlbWFudGljYWxseSBqdXN0IGEgTW92ZSwg
d2UgY2FuIHNraXAgdGhlIE1vdmUgYW5kIGp1c3QKKyAgICAgICAgY2xhaW0gdGhhdCB0aGUgVHJ1
bmMgaGFzIHRoZSBzYW1lIFRtcCBhcyBpdHMgY2hpbGQuIFdlIGRvIHNvbWV0aGluZyBzaW1pbGFy
IGZvciBaRXh0MzIsCisgICAgICAgIGV4Y2VwdCB3aXRoIHRoYXQgb25lIHdlIGhhdmUgdG8gYW5h
bHl6ZSBJUiB0byBlbnN1cmUgdGhhdCB0aGUgdmFsdWUgd2lsbCBhY3R1YWxseSBiZSB6ZXJvCisg
ICAgICAgIGV4dGVuZGVkLiBOb3RlIHRoYXQgdGhpcyBraW5kIG9mIHJlYXNvbmluZyBhYm91dCBo
b3cgVG1wcyB3b3JrIGluIEFpciBpcyBvbmx5IHBvc3NpYmxlIGluIHRoZQorICAgICAgICBCMy0+
QWlyIGxvd2VyaW5nLCBzaW5jZSBhdCB0aGF0IHBvaW50IHdlIGtub3cgZm9yIHN1cmUgd2hpY2gg
VG1wcyBiZWhhdmUgdGhpcyB3YXkuIElmIHdlCisgICAgICAgIHdhbnRlZCB0byBkbyBhbnl0aGlu
ZyBsaWtlIHRoaXMgYXMgYSBsYXRlciBBaXIgcGhhc2UsIHdlJ2QgaGF2ZSB0byBkbyBtb3JlIGFu
YWx5c2lzIHRvIGZpcnN0CisgICAgICAgIHByb3ZlIHRoYXQgVG1wcyBiZWhhdmUgaW4gdGhpcyB3
YXkuCisKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpMb3dlclRvQWlyOjpydW4pOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWly
OjpoaWdoQml0c0FyZVplcm8pOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjpz
aG91bGRDb3B5UHJvcGFnYXRlKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6
dG1wKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6dHJ5U3RvcmUpOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjp0cnlUcnVuYyk6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6Okxvd2VyVG9BaXI6OnRyeVpFeHQzMik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
Okxvd2VyVG9BaXI6OnRyeUlkZW50aXR5KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJU
b0Fpcjo6dHJ5VHJ1bmNBcmd1bWVudFJlZyk6IERlbGV0ZWQuCisgICAgICAgICogYjMvQjNMb3dl
cmluZ01hdGNoZXIucGF0dGVybnM6CisKIDIwMTUtMTEtMDMgIE1pY2hhZWwgU2Fib2ZmICA8bXNh
Ym9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIElubGluZUNhbGxGcmFtZTo6IGdldENh
bGxlclNraXBwaW5nRGVhZEZyYW1lcyB0byBzb21ldGhpbmcgbW9yZSBkZXNjcmlwdGl2ZQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDE5
MTk2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjAsMTEgKzEyMCw1NCBAQCBwdWJsaWM6CiAgICAgICAgIGluc2VydGlv
blNldC5leGVjdXRlKGNvZGVbMF0pOwogICAgIH0KIAorICAgIGJvb2wgaGlnaEJpdHNBcmVaZXJv
KFZhbHVlKiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7
CisgICAgICAgIGNhc2UgQ29uc3QzMjoKKyAgICAgICAgICAgIC8vIFdlIHdpbGwgdXNlIGEgTW92
ZSBpbW1lZGlhdGUgaW5zdHJ1Y3Rpb24sIHdoaWNoIG1heSBzaWduIGV4dGVuZC4KKyAgICAgICAg
ICAgIHJldHVybiB2YWx1ZS0+YXNJbnQzMigpID49IDA7CisgICAgICAgIGNhc2UgVHJ1bmM6Cisg
ICAgICAgICAgICAvLyBUcnVuYyBpcyBjb3B5LXByb3BhZ2F0ZWQsIHNvIHRoZSB2YWx1ZSBtYXkg
aGF2ZSBnYXJiYWdlIGluIHRoZSBoaWdoIGJpdHMuCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGNhc2UgQ0NhbGw6CisgICAgICAgICAgICAvLyBDYWxscyBhcmUgYWxsb3dlZCB0
byBoYXZlIGdhcmJhZ2UgaW4gdGhlaXIgaGlnaCBiaXRzLgorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBjYXNlIFBhdGNocG9pbnQ6CisgICAgICAgICAgICAvLyBGb3Igbm93LCB3
ZSBhc3N1bWUgdGhhdCBwYXRjaHBvaW50cyBtYXkgcmV0dXJuIGdhcmJhZ2UgaW4gdGhlIGhpZ2gg
Yml0cy4gVGhpcyBzaW1wbGlmaWVzCisgICAgICAgICAgICAvLyB0aGUgaW50ZXJmYWNlLiBXZSBt
YXkgcmV2aXNpdCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBsYXRlci4KKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBQaGk6CisgICAgICAgICAgICAvLyBGSVhNRTogV2Ug
Y291bGQgZG8gdGhpcyByaWdodC4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA4NDUKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIEFsbCBvdGhlciBvcGVyYXRpb25zIHRoYXQg
cmV0dXJuIEludDMyIHNob3VsZCBsb3dlciB0byBzb21ldGhpbmcgdGhhdCB6ZXJvIGV4dGVuZHMu
CisgICAgICAgICAgICByZXR1cm4gdmFsdWUtPnR5cGUoKSA9PSBJbnQzMjsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGJvb2wgc2hvdWxkQ29weVByb3BhZ2F0ZShWYWx1ZSogdmFsdWUpCisgICAg
eworICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkgeworICAgICAgICBjYXNlIFRydW5j
OgorICAgICAgICBjYXNlIElkZW50aXR5OgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIGNhc2UgWkV4dDMyOgorICAgICAgICAgICAgcmV0dXJuIGhpZ2hCaXRzQXJlWmVybyh2YWx1
ZS0+Y2hpbGQoMCkpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICB9CisgICAgfQorCiAgICAgVG1wIHRtcChWYWx1ZSogdmFsdWUpCiAgICAgewog
ICAgICAgICBUbXAmIHRtcCA9IHZhbHVlVG9UbXBbdmFsdWVdOwotICAgICAgICBpZiAoIXRtcCkK
KyAgICAgICAgaWYgKCF0bXApIHsKKyAgICAgICAgICAgIHdoaWxlIChzaG91bGRDb3B5UHJvcGFn
YXRlKHZhbHVlKSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLT5jaGlsZCgwKTsKICAg
ICAgICAgICAgIHRtcCA9IGNvZGUubmV3VG1wKGlzSW50KHZhbHVlLT50eXBlKCkpID8gQXJnOjpH
UCA6IEFyZzo6RlApOworICAgICAgICAgICAgdmFsdWVUb1RtcFt2YWx1ZV0gPSB0bXA7CisgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIHRtcDsKICAgICB9CiAKQEAgLTY2NCwyNyArNzA3LDE5IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgYm9vbCB0cnlUcnVu
Y0FyZ3VtZW50UmVnKFZhbHVlKiBhcmd1bWVudFJlZykKLSAgICB7Ci0gICAgICAgIHByb2xvZ3Vl
LmFwcGVuZChJbnN0KAotICAgICAgICAgICAgTW92ZSwgY3VycmVudFZhbHVlLAotICAgICAgICAg
ICAgVG1wKGFyZ3VtZW50UmVnLT5hczxBcmd1bWVudFJlZ1ZhbHVlPigpLT5hcmd1bWVudFJlZygp
KSwKLSAgICAgICAgICAgIHRtcChjdXJyZW50VmFsdWUpKSk7Ci0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0KLQogICAgIGJvb2wgdHJ5VHJ1bmMoVmFsdWUqIHZhbHVlKQogICAgIHsKLSAgICAg
ICAgLy8gRklYTUU6IFRoaXMgY291bGQganVzdCBiZSBhIGNvcHkgcHJvcGFnYXRpb24gcnVsZS4K
LSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDc3
NQotICAgICAgICBhcHBlbmQoTW92ZSwgdG1wKHZhbHVlKSwgdG1wKGN1cnJlbnRWYWx1ZSkpOwor
ICAgICAgICBBU1NFUlQodG1wKHZhbHVlKSA9PSB0bXAoY3VycmVudFZhbHVlKSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGJvb2wgdHJ5WkV4dDMyKFZhbHVlKiB2YWx1ZSkK
ICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIGp1c3QgYmUgYSBjb3B5IHByb3Bh
Z2F0aW9uIHJ1bGUsIHdpdGggY2F2ZWF0cy4gOy0pCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA3NzUKKyAgICAgICAgaWYgKGhpZ2hCaXRzQXJl
WmVybyh2YWx1ZSkpIHsKKyAgICAgICAgICAgIEFTU0VSVCh0bXAodmFsdWUpID09IHRtcChjdXJy
ZW50VmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAg
IAogICAgICAgICBhcHBlbmQoTW92ZTMyLCB0bXAodmFsdWUpLCB0bXAoY3VycmVudFZhbHVlKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTgzOSw3ICs4NzQsNyBAQCBwdWJsaWM6
CiAKICAgICBib29sIHRyeUlkZW50aXR5KFZhbHVlKiB2YWx1ZSkKICAgICB7Ci0gICAgICAgIGFw
cGVuZChyZWxheGVkTW92ZUZvclR5cGUodmFsdWUtPnR5cGUoKSksIGltbU9yVG1wKHZhbHVlKSwg
dG1wKGN1cnJlbnRWYWx1ZSkpOworICAgICAgICBBU1NFUlQodG1wKHZhbHVlKSA9PSB0bXAoY3Vy
cmVudFZhbHVlKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyaW5nTWF0Y2hlci5wYXR0ZXJucwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlcmluZ01hdGNoZXIucGF0dGVy
bnMJKHJldmlzaW9uIDE5MTk2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2Vy
aW5nTWF0Y2hlci5wYXR0ZXJucwkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBTdG9y
ZVN1YkxvYWQgPSBTdG9yZShBZGQobGVmdCwgcmlnaHQpLCBhCiBTdG9yZUFuZExvYWQgPSBTdG9y
ZShCaXRBbmQobGVmdCwgcmlnaHQpLCBhZGRyZXNzKQogU3RvcmUgPSBTdG9yZSh2YWx1ZSwgYWRk
cmVzcykKIAotVHJ1bmNBcmd1bWVudFJlZyA9IFRydW5jKGFyZ3VtZW50UmVnID0gQXJndW1lbnRS
ZWcoKSkKIFRydW5jID0gVHJ1bmModmFsdWUpCiAKIFpFeHQzMiA9IFpFeHQzMih2YWx1ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264710</attachid>
            <date>2015-11-03 12:27:10 -0800</date>
            <delta_ts>2015-11-03 13:13:53 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>7179</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxOTY1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDE1LTExLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QjM6Okxvd2VyVG9BaXIgc2hvdWxkIGRvIGNvcHkgcHJvcGFnYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDc3NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoYXQgd2UgYXJlIHRyeWluZyB0byBk
byBpcyByZW1vdmUgdGhlIHVubmVjZXNzYXJ5IE1vdmUncyBhbmQgTW92ZTMyJ3MgZnJvbSBUcnVu
YyBhbmQgWkV4dDMyLgorICAgICAgICBZb3UgY291bGQgdGhpbmsgb2YgdGhpcyBhcyBhbiBBaXIg
b3B0aW1pemF0aW9uLCBhbmQgaW5kZWVkLCBBaXIgaXMgcG93ZXJmdWwgZW5vdWdoIHRoYXQgd2UK
KyAgICAgICAgY291bGQgd3JpdGUgYSBwaGFzZSB0aGF0IGRvZXMgY29weSBwcm9wYWdhdGlvbiB0
aHJvdWdoIE1vdmUncyBhbmQgTW92ZTMyJ3MuIEZvciBNb3ZlMzIncyBpdAorICAgICAgICB3b3Vs
ZCBvbmx5IGNvcHktcHJvcGFnYXRlIGlmIGl0IHByb3ZlZCB0aGF0IHRoZSB2YWx1ZSB3YXMgYWxy
ZWFkeSB6ZXJvLWV4dGVuZGVkLiBXZSBjb3VsZAorICAgICAgICBrbm93IHRoaXMgYnkganVzdCBh
ZGRpbmcgYSBEZWYzMiByb2xlIHRvIEFpci4KKworICAgICAgICBCdXQgdGhpcyBwYXRjaCB0YWtl
cyBhIGRpZmZlcmVudCBhcHByb2FjaDogd2UgZW5zdXJlIHRoYXQgd2UgZG9uJ3QgZ2VuZXJhdGUg
c3VjaCByZWR1bmRhbnQKKyAgICAgICAgTW92ZSdzIGFuZCBNb3ZlMzIncyB0byBiZWdpbiB3aXRo
LiBUaGUgcmVhc29uIGlzIHRoYXQgaXQncyBtdWNoIGNoZWFwZXIgdG8gZG8gYW5hbHlzaXMgb3Zl
cgorICAgICAgICBCMyB0aGFuIG92ZXIgQWlyLiBTbywgd2hlbmV2ZXIgcG9zc2libGUsIGFuZCBv
cHRpbWl6YXRpb24gc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIEIzLiBJbgorICAgICAgICB0aGlz
IGNhc2UgdGhlIG9wdGltaXphdGlvbiBjYW4ndCBxdWl0ZSBiZSBpbXBsZW1lbnRlZCBpbiBCMyBi
ZWNhdXNlIHlvdSBjYW5ub3QgcmVtb3ZlIGEgVHJ1bmMKKyAgICAgICAgb3IgWkV4dDMyIHdpdGhv
dXQgdmlvbGF0aW5nIHRoZSBCMyB0eXBlIHN5c3RlbS4gU28sIHRoZSBiZXN0IHBsYWNlIHRvIGRv
IHRoaXMgb3B0aW1pemF0aW9uIGlzCisgICAgICAgIGR1cmluZyBsb3dlcmluZzogd2UgY2FuIHVz
ZSBCMyBmb3Igb3VyIGFuYWx5c2lzIGFuZCB3ZSBjYW4gdXNlIEFpciB0byBleHByZXNzIHRoZQor
ICAgICAgICB0cmFuc2Zvcm1hdGlvbi4KKworICAgICAgICBDb3B5IHByb3BhZ2F0aW5nIGR1cmlu
ZyBCMy0+QWlyIGxvd2VyaW5nIGlzIG5hdHVyYWwgYmVjYXVzZSB3ZSBhcmUgY3JlYXRpbmcgIlNT
QS1saWtlIiBUbXBzCisgICAgICAgIGZyb20gdGhlIEIzIFZhbHVlcy4gVGhleSBhcmUgU1NBLWxp
a2UgaW4gdGhlIHNlbnNlIHRoYXQgZXhjZXB0IHRoZSB0bXAgZm9yIGEgUGhpLCB3ZSBrbm93Cisg
ICAgICAgIHRoYXQgdGhlIFRtcCB3aWxsIGJlIGFzc2lnbmVkIG9uY2UgYW5kIHRoYXQgdGhlIGFz
c2lnbm1lbnQgd2lsbCBkb21pbmF0ZSBhbGwgdXNlcy4gU28sIGlmIHdlCisgICAgICAgIHNlZSBh
biBvcGVyYXRpb24gbGlrZSBUcnVuYyB0aGF0IGlzIHNlbWFudGljYWxseSBqdXN0IGEgTW92ZSwg
d2UgY2FuIHNraXAgdGhlIE1vdmUgYW5kIGp1c3QKKyAgICAgICAgY2xhaW0gdGhhdCB0aGUgVHJ1
bmMgaGFzIHRoZSBzYW1lIFRtcCBhcyBpdHMgY2hpbGQuIFdlIGRvIHNvbWV0aGluZyBzaW1pbGFy
IGZvciBaRXh0MzIsCisgICAgICAgIGV4Y2VwdCB3aXRoIHRoYXQgb25lIHdlIGhhdmUgdG8gYW5h
bHl6ZSBJUiB0byBlbnN1cmUgdGhhdCB0aGUgdmFsdWUgd2lsbCBhY3R1YWxseSBiZSB6ZXJvCisg
ICAgICAgIGV4dGVuZGVkLiBOb3RlIHRoYXQgdGhpcyBraW5kIG9mIHJlYXNvbmluZyBhYm91dCBo
b3cgVG1wcyB3b3JrIGluIEFpciBpcyBvbmx5IHBvc3NpYmxlIGluIHRoZQorICAgICAgICBCMy0+
QWlyIGxvd2VyaW5nLCBzaW5jZSBhdCB0aGF0IHBvaW50IHdlIGtub3cgZm9yIHN1cmUgd2hpY2gg
VG1wcyBiZWhhdmUgdGhpcyB3YXkuIElmIHdlCisgICAgICAgIHdhbnRlZCB0byBkbyBhbnl0aGlu
ZyBsaWtlIHRoaXMgYXMgYSBsYXRlciBBaXIgcGhhc2UsIHdlJ2QgaGF2ZSB0byBkbyBtb3JlIGFu
YWx5c2lzIHRvIGZpcnN0CisgICAgICAgIHByb3ZlIHRoYXQgVG1wcyBiZWhhdmUgaW4gdGhpcyB3
YXkuCisKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpMb3dlclRvQWlyOjpydW4pOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWly
OjpoaWdoQml0c0FyZVplcm8pOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjpz
aG91bGRDb3B5UHJvcGFnYXRlKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6
dG1wKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6dHJ5U3RvcmUpOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjp0cnlUcnVuYyk6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6Okxvd2VyVG9BaXI6OnRyeVpFeHQzMik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
Okxvd2VyVG9BaXI6OnRyeUlkZW50aXR5KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJU
b0Fpcjo6dHJ5VHJ1bmNBcmd1bWVudFJlZyk6IERlbGV0ZWQuCisgICAgICAgICogYjMvQjNMb3dl
cmluZ01hdGNoZXIucGF0dGVybnM6CisKIDIwMTUtMTEtMDMgIE1pY2hhZWwgU2Fib2ZmICA8bXNh
Ym9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIElubGluZUNhbGxGcmFtZTo6IGdldENh
bGxlclNraXBwaW5nRGVhZEZyYW1lcyB0byBzb21ldGhpbmcgbW9yZSBkZXNjcmlwdGl2ZQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDE5
MTk2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjAsMTEgKzEyMCw1NiBAQCBwdWJsaWM6CiAgICAgICAgIGluc2VydGlv
blNldC5leGVjdXRlKGNvZGVbMF0pOwogICAgIH0KIAorICAgIGJvb2wgaGlnaEJpdHNBcmVaZXJv
KFZhbHVlKiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7
CisgICAgICAgIGNhc2UgQ29uc3QzMjoKKyAgICAgICAgICAgIC8vIFdlIHdpbGwgdXNlIGEgTW92
ZSBpbW1lZGlhdGUgaW5zdHJ1Y3Rpb24sIHdoaWNoIG1heSBzaWduIGV4dGVuZC4KKyAgICAgICAg
ICAgIHJldHVybiB2YWx1ZS0+YXNJbnQzMigpID49IDA7CisgICAgICAgIGNhc2UgVHJ1bmM6Cisg
ICAgICAgICAgICAvLyBUcnVuYyBpcyBjb3B5LXByb3BhZ2F0ZWQsIHNvIHRoZSB2YWx1ZSBtYXkg
aGF2ZSBnYXJiYWdlIGluIHRoZSBoaWdoIGJpdHMuCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGNhc2UgQ0NhbGw6CisgICAgICAgICAgICAvLyBDYWxscyBhcmUgYWxsb3dlZCB0
byBoYXZlIGdhcmJhZ2UgaW4gdGhlaXIgaGlnaCBiaXRzLgorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBjYXNlIFBhdGNocG9pbnQ6CisgICAgICAgICAgICAvLyBGb3Igbm93LCB3
ZSBhc3N1bWUgdGhhdCBwYXRjaHBvaW50cyBtYXkgcmV0dXJuIGdhcmJhZ2UgaW4gdGhlIGhpZ2gg
Yml0cy4gVGhpcyBzaW1wbGlmaWVzCisgICAgICAgICAgICAvLyB0aGUgaW50ZXJmYWNlLiBXZSBt
YXkgcmV2aXNpdCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBsYXRlci4KKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBQaGk6CisgICAgICAgICAgICAvLyBGSVhNRTogV2Ug
Y291bGQgZG8gdGhpcyByaWdodC4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA4NDUKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIEFsbCBvdGhlciBvcGVyYXRpb25zIHRoYXQg
cmV0dXJuIEludDMyIHNob3VsZCBsb3dlciB0byBzb21ldGhpbmcgdGhhdCB6ZXJvIGV4dGVuZHMu
CisgICAgICAgICAgICByZXR1cm4gdmFsdWUtPnR5cGUoKSA9PSBJbnQzMjsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIC8vIE5PVEU6IFRoaXMgZW50aXJlIG1lY2hhbmlzbSBjb3VsZCBiZSBkb25l
IG92ZXIgQWlyLCBpZiB3ZSBmZWx0IHRoYXQgdGhpcyB3b3VsZCBiZSBmYXN0IGVub3VnaC4KKyAg
ICAvLyBGb3Igbm93IHdlJ3JlIGFzc3VtaW5nIHRoYXQgaXQncyBmYXN0ZXIgdG8gZG8gdGhpcyBo
ZXJlLCBzaW5jZSBhbmFseXppbmcgQjMgaXMgc28gY2hlYXAuCisgICAgYm9vbCBzaG91bGRDb3B5
UHJvcGFnYXRlKFZhbHVlKiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodmFsdWUtPm9w
Y29kZSgpKSB7CisgICAgICAgIGNhc2UgVHJ1bmM6CisgICAgICAgIGNhc2UgSWRlbnRpdHk6Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBaRXh0MzI6CisgICAgICAgICAg
ICByZXR1cm4gaGlnaEJpdHNBcmVaZXJvKHZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKICAgICBU
bXAgdG1wKFZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIFRtcCYgdG1wID0gdmFsdWVUb1Rt
cFt2YWx1ZV07Ci0gICAgICAgIGlmICghdG1wKQorICAgICAgICBpZiAoIXRtcCkgeworICAgICAg
ICAgICAgd2hpbGUgKHNob3VsZENvcHlQcm9wYWdhdGUodmFsdWUpKQorICAgICAgICAgICAgICAg
IHZhbHVlID0gdmFsdWUtPmNoaWxkKDApOwogICAgICAgICAgICAgdG1wID0gY29kZS5uZXdUbXAo
aXNJbnQodmFsdWUtPnR5cGUoKSkgPyBBcmc6OkdQIDogQXJnOjpGUCk7CisgICAgICAgICAgICB2
YWx1ZVRvVG1wW3ZhbHVlXSA9IHRtcDsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdG1wOwog
ICAgIH0KIApAQCAtNjY0LDI3ICs3MDksMTkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKLSAgICBib29sIHRyeVRydW5jQXJndW1lbnRSZWcoVmFsdWUqIGFyZ3VtZW50
UmVnKQotICAgIHsKLSAgICAgICAgcHJvbG9ndWUuYXBwZW5kKEluc3QoCi0gICAgICAgICAgICBN
b3ZlLCBjdXJyZW50VmFsdWUsCi0gICAgICAgICAgICBUbXAoYXJndW1lbnRSZWctPmFzPEFyZ3Vt
ZW50UmVnVmFsdWU+KCktPmFyZ3VtZW50UmVnKCkpLAotICAgICAgICAgICAgdG1wKGN1cnJlbnRW
YWx1ZSkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCiAgICAgYm9vbCB0cnlUcnVu
YyhWYWx1ZSogdmFsdWUpCiAgICAgewotICAgICAgICAvLyBGSVhNRTogVGhpcyBjb3VsZCBqdXN0
IGJlIGEgY29weSBwcm9wYWdhdGlvbiBydWxlLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNzc1Ci0gICAgICAgIGFwcGVuZChNb3ZlLCB0bXAo
dmFsdWUpLCB0bXAoY3VycmVudFZhbHVlKSk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQodmFsdWUs
IHRtcCh2YWx1ZSkgPT0gdG1wKGN1cnJlbnRWYWx1ZSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKICAgICBib29sIHRyeVpFeHQzMihWYWx1ZSogdmFsdWUpCiAgICAgewotICAgICAg
ICAvLyBGSVhNRTogVGhpcyBjb3VsZCBqdXN0IGJlIGEgY29weSBwcm9wYWdhdGlvbiBydWxlLCB3
aXRoIGNhdmVhdHMuIDstKQotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUwNzc1CisgICAgICAgIGlmIChoaWdoQml0c0FyZVplcm8odmFsdWUpKSB7
CisgICAgICAgICAgICBBU1NFUlQodG1wKHZhbHVlKSA9PSB0bXAoY3VycmVudFZhbHVlKSk7Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgYXBw
ZW5kKE1vdmUzMiwgdG1wKHZhbHVlKSwgdG1wKGN1cnJlbnRWYWx1ZSkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CkBAIC04MzksNyArODc2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCB0
cnlJZGVudGl0eShWYWx1ZSogdmFsdWUpCiAgICAgewotICAgICAgICBhcHBlbmQocmVsYXhlZE1v
dmVGb3JUeXBlKHZhbHVlLT50eXBlKCkpLCBpbW1PclRtcCh2YWx1ZSksIHRtcChjdXJyZW50VmFs
dWUpKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRCh2YWx1ZSwgdG1wKHZhbHVlKSA9PSB0bXAoY3Vy
cmVudFZhbHVlKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyaW5nTWF0Y2hlci5wYXR0ZXJucwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlcmluZ01hdGNoZXIucGF0dGVy
bnMJKHJldmlzaW9uIDE5MTk2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2Vy
aW5nTWF0Y2hlci5wYXR0ZXJucwkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBTdG9y
ZVN1YkxvYWQgPSBTdG9yZShBZGQobGVmdCwgcmlnaHQpLCBhCiBTdG9yZUFuZExvYWQgPSBTdG9y
ZShCaXRBbmQobGVmdCwgcmlnaHQpLCBhZGRyZXNzKQogU3RvcmUgPSBTdG9yZSh2YWx1ZSwgYWRk
cmVzcykKIAotVHJ1bmNBcmd1bWVudFJlZyA9IFRydW5jKGFyZ3VtZW50UmVnID0gQXJndW1lbnRS
ZWcoKSkKIFRydW5jID0gVHJ1bmModmFsdWUpCiAKIFpFeHQzMiA9IFpFeHQzMih2YWx1ZSkK
</data>
<flag name="review"
          id="289805"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>