<?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>150042</bug_id>
          
          <creation_ts>2015-10-12 11:30:30 -0700</creation_ts>
          <short_desc>CodeBlock write barriers should be precise</short_desc>
          <delta_ts>2015-10-28 19:20:29 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1132390</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-12 11:30:30 -0700</bug_when>
    <thetext>CodeBlock write barriers should be precise</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132394</commentid>
    <comment_count>1</comment_count>
      <attachid>262909</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-12 11:36:58 -0700</bug_when>
    <thetext>Created attachment 262909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132484</commentid>
    <comment_count>2</comment_count>
      <attachid>262909</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-12 14:21:21 -0700</bug_when>
    <thetext>Comment on attachment 262909
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:278
&gt; +    codeBlocksToWriteBarrier.add(jit.codeBlock()-&gt;baselineAlternative());

Is this necessary?  I may be wrong but wouldn&apos;t this baseline codeBlock be covered when you iterate the inlineCallFrame&apos;s directCaller back to the top level (which you are doing below)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132492</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-12 14:49:06 -0700</bug_when>
    <thetext>&gt; Is this necessary?  I may be wrong but wouldn&apos;t this baseline codeBlock be
&gt; covered when you iterate the inlineCallFrame&apos;s directCaller back to the top
&gt; level (which you are doing below)?

The inlineCallFrame stack only includes inlined functions, and not the baseline CodeBlock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132859</commentid>
    <comment_count>4</comment_count>
      <attachid>262909</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-10-13 12:19:11 -0700</bug_when>
    <thetext>Comment on attachment 262909
Patch

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

r=me

&gt;&gt; Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:278
&gt;&gt; +    codeBlocksToWriteBarrier.add(jit.codeBlock()-&gt;baselineAlternative());
&gt; 
&gt; Is this necessary?  I may be wrong but wouldn&apos;t this baseline codeBlock be covered when you iterate the inlineCallFrame&apos;s directCaller back to the top level (which you are doing below)?

I don&apos;t think the loop below covers it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132883</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-13 13:09:26 -0700</bug_when>
    <thetext>Committed r191003: &lt;http://trac.webkit.org/changeset/191003&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133608</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-15 14:53:16 -0700</bug_when>
    <thetext>Rolled out in &lt;http://trac.webkit.org/changeset/191139&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262909</attachid>
            <date>2015-10-12 11:36:58 -0700</date>
            <delta_ts>2015-10-28 19:20:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150042-20151012113622.patch</filename>
            <type>text/plain</type>
            <size>5085</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkwODcyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDE1LTEwLTEyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQ29kZUJsb2NrIHdyaXRlIGJhcnJpZXJzIHNob3VsZCBiZSBwcmVjaXNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAwNDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb2RlQmxvY2sgcGVyZm9ybXMg
bG90cyBvZiB1bm5lY2Vzc2FyeSB3cml0ZSBiYXJyaWVycy4gVGhpcyB3YXN0ZXMKKyAgICAgICAg
cGVyZm9ybWFuY2UgYW5kIG1ha2VzIHRoZSBjb2RlIGEgYml0IGhhcmRlciB0byBmb2xsb3csIGFu
ZCBpdCBtaWdodCBtYXNrCisgICAgICAgIGltcG9ydGFudCBidWdzLiBOb3cgaXMgYSBnb29kIHRp
bWUgdG8gdW5tYXNrIGltcG9ydGFudCBidWdzLgorCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJs
b2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9ja1NldDo6bWFyayk6IERvbid0IHdyaXRlIGJh
cnJpZXIgYWxsIENvZGVCbG9ja3Mgb24gdGhlCisgICAgICAgIHN0YWNrLiBPbmx5IENvZGVCbG9j
a3MgdGhhdCBkbyB2YWx1ZSBwcm9maWxpbmcgbmVlZCB3cml0ZSBiYXJyaWVycywgYW5kCisgICAg
ICAgIHRoZXkgZG8gdGhvc2UgdGhlbXNlbHZlcy4KKworICAgICAgICBJbiBzdGVhZHkgc3RhdGUs
IHdoZW4gbW9zdCBvZiBvdXIgQ29kZUJsb2NrcyBhcmUgb2xkIGFuZCBGVEwtY29tcGlsZWQsCisg
ICAgICAgIGFuZCB3ZSdyZSBkb2luZyBlZGVuIEdDJ3MsIHdlIHNob3VsZCBhbG1vc3QgbmV2ZXIg
dmlzaXQgYSBDb2RlQmxvY2suCisKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29t
bW9uLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpvc3JXcml0ZUJhcnJpZXIpOgorICAgICAgICAo
SlNDOjpERkc6OmFkanVzdEFuZEp1bXBUb1RhcmdldCk6IERvbid0IHdyaXRlIGJhcnJpZXIgYWxs
IGlubGluZWQKKyAgICAgICAgQ29kZUJsb2NrcyBvbiBleGl0LiBUaGF0J3Mgbm90IG5lY2Vzc2Fy
eS4gSW5zdGVhZCwgd3JpdGUgYmFycmllciB0aGUgCisgICAgICAgIENvZGVCbG9jayhzKSB3ZSB3
aWxsIGV4aXQgdG8sIGFsb25nIHdpdGggdGhlIG9uZSB3ZSB3aWxsIHdyaXRlIGEgdmFsdWUKKyAg
ICAgICAgcHJvZmlsZSB0by4KKwogMjAxNS0xMC0xMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGNsYXJpZnkgYSBjb21tZW50LiBUaGUgZXhh
bXBsZSBjb2RlIGhhZCBhIGJ1Zy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDE5MDgyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTM3NiwxMSArMTM3Niw2
IEBAIGlubGluZSB2b2lkIENvZGVCbG9ja1NldDo6bWFyayhDb2RlQmxvY2sKICAgICBpZiAoIWNv
ZGVCbG9jaykKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVHJ5IHRvIHJlY292ZXIgZ3JhY2Vm
dWxseSBpZiB3ZSBmb3JnZXQgdG8gZXhlY3V0ZSBhIGJhcnJpZXIgZm9yIGEKLSAgICAvLyBDb2Rl
QmxvY2sgdGhhdCBkb2VzIHZhbHVlIHByb2ZpbGluZy4gVGhpcyBpcyBwcm9iYWJseSBvdmVya2ls
bCwgYnV0IHdlCi0gICAgLy8gaGF2ZSBhbHdheXMgZG9uZSBpdC4KLSAgICBIZWFwOjpoZWFwKGNv
ZGVCbG9jayktPndyaXRlQmFycmllcihjb2RlQmxvY2spOwotCiAgICAgbV9jdXJyZW50bHlFeGVj
dXRpbmcuYWRkKGNvZGVCbG9jayk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHJldmlzaW9uIDE5
MDgyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29t
bW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY2LDI5ICsyNjYsMzAgQEAgc3RhdGljIHZvaWQg
b3NyV3JpdGVCYXJyaWVyKENDYWxsSGVscGVycwogICAgIG93bmVySXNSZW1lbWJlcmVkT3JJbkVk
ZW4ubGluaygmaml0KTsKIH0KIAotdm9pZCBhZGp1c3RBbmRKdW1wVG9UYXJnZXQoQ0NhbGxIZWxw
ZXJzJiBqaXQsIGNvbnN0IE9TUkV4aXRCYXNlJiBleGl0LCBib29sIGlzRXhpdGluZ1RvT3BDYXRj
aCkKK3N0YXRpYyB2b2lkIG9zcldyaXRlQmFycmllcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3Qg
T1NSRXhpdEJhc2UmIGV4aXQpCiB7Ci0gICAgaml0Lm1vdmUoCi0gICAgICAgIEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbVB0cigKLSAgICAgICAgICAgIGppdC5jb2RlQmxvY2soKS0+YmFzZWxp
bmVBbHRlcm5hdGl2ZSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICBvc3JXcml0ZUJh
cnJpZXIoaml0LCBHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86Om5vbkFyZ0dQUjApOwot
Ci0gICAgLy8gV2UgYmFycmllciBhbGwgaW5saW5lZCBmcmFtZXMgLS0gYW5kIG5vdCBqdXN0IHRo
ZSBjdXJyZW50IGlubGluZSBzdGFjayAtLQotICAgIC8vIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyB3
aGljaCBpbmxpbmVkIGZ1bmN0aW9uIG93bnMgdGhlIHZhbHVlIHByb2ZpbGUgdGhhdAotICAgIC8v
IHdlJ2xsIHVwZGF0ZSB3aGVuIHdlIGV4aXQuIEluIHRoZSBjYXNlIG9mICJmKCkgeyBhKCk7IGIo
KTsgfSIsIGlmIGJvdGgKLSAgICAvLyBhIGFuZCBiIGFyZSBpbmxpbmVkLCB3ZSBtaWdodCBleGl0
IGluc2lkZSBiIGR1ZSB0byBhIGJhZCB2YWx1ZSBsb2FkZWQKLSAgICAvLyBmcm9tIGEuCi0gICAg
Ly8gRklYTUU6IE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUgc2hvdWxkIHJlbWVtYmVyIHdo
aWNoIENvZGVCbG9jayBvd25zCi0gICAgLy8gdGhlIHZhbHVlIHByb2ZpbGUuCi0gICAgSW5saW5l
Q2FsbEZyYW1lU2V0KiBpbmxpbmVDYWxsRnJhbWVzID0gaml0LmNvZGVCbG9jaygpLT5qaXRDb2Rl
KCktPmRmZ0NvbW1vbigpLT5pbmxpbmVDYWxsRnJhbWVzLmdldCgpOwotICAgIGlmIChpbmxpbmVD
YWxsRnJhbWVzKSB7Ci0gICAgICAgIGZvciAoSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJh
bWUgOiAqaW5saW5lQ2FsbEZyYW1lcykgewotICAgICAgICAgICAgaml0Lm1vdmUoCi0gICAgICAg
ICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKAotICAgICAgICAgICAgICAg
ICAgICBpbmxpbmVDYWxsRnJhbWUtPmJhc2VsaW5lQ29kZUJsb2NrLmdldCgpKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIxKTsKLSAgICAgICAgICAgIG9zcldyaXRlQmFycmllcihqaXQsIEdQUkluZm86
OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgICAgIH0KKyAgICBIYXNo
U2V0PENvZGVCbG9jayo+IGNvZGVCbG9ja3NUb1dyaXRlQmFycmllcjsKKworICAgIC8vIE5vdGUg
dGhhdCB0aGUgdmFsdWUgcHJvZmlsaW5nIENvZGVCbG9jayBhbmQgdGhlIGJhc2VsaW5lIENvZGVC
bG9jayBtaWdodAorICAgIC8vIG5vdCBiZSBlcXVhbC4gSW4gImYoKSB7IGEoKTsgYigpOyB9Iiwg
aWYgYm90aCAnYScgYW5kICdiJyBhcmUgaW5saW5lZCwKKyAgICAvLyB3ZSBtaWdodCBleGl0IHRv
ICdiJyBkdWUgdG8gYSBiYWQgdmFsdWUgbG9hZGVkIGZyb20gJ2EnLgorICAgIGNvZGVCbG9ja3NU
b1dyaXRlQmFycmllci5hZGQoaml0LmJhc2VsaW5lQ29kZUJsb2NrRm9yKGV4aXQubV9jb2RlT3Jp
Z2luRm9yRXhpdFByb2ZpbGUpKTsKKworICAgIGNvZGVCbG9ja3NUb1dyaXRlQmFycmllci5hZGQo
aml0LmNvZGVCbG9jaygpLT5iYXNlbGluZUFsdGVybmF0aXZlKCkpOworCisgICAgZm9yIChJbmxp
bmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGV4aXQubV9jb2RlT3JpZ2luLmlubGluZUNh
bGxGcmFtZTsgaW5saW5lQ2FsbEZyYW1lOyBpbmxpbmVDYWxsRnJhbWUgPSBpbmxpbmVDYWxsRnJh
bWUtPmRpcmVjdENhbGxlci5pbmxpbmVDYWxsRnJhbWUpCisgICAgICAgIGNvZGVCbG9ja3NUb1dy
aXRlQmFycmllci5hZGQoaW5saW5lQ2FsbEZyYW1lLT5iYXNlbGluZUNvZGVCbG9jay5nZXQoKSk7
CisKKyAgICBmb3IgKENvZGVCbG9jayogY29kZUJsb2NrIDogY29kZUJsb2Nrc1RvV3JpdGVCYXJy
aWVyKSB7CisgICAgICAgIGppdC5tb3ZlKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKGNvZGVCbG9jayksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAg
IG9zcldyaXRlQmFycmllcihqaXQsIEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6bm9u
QXJnR1BSMCk7CiAgICAgfQorfQorCit2b2lkIGFkanVzdEFuZEp1bXBUb1RhcmdldChDQ2FsbEhl
bHBlcnMmIGppdCwgY29uc3QgT1NSRXhpdEJhc2UmIGV4aXQsIGJvb2wgaXNFeGl0aW5nVG9PcENh
dGNoKQoreworICAgIG9zcldyaXRlQmFycmllcihqaXQsIGV4aXQpOwogCiAgICAgaWYgKGV4aXQu
bV9jb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZSkKICAgICAgICAgaml0LmFkZFB0cihBc3NlbWJs
eUhlbHBlcnM6OlRydXN0ZWRJbW0zMihleGl0Lm1fY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUt
PnN0YWNrT2Zmc2V0ICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSksIEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>