<?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>197398</bug_id>
          
          <creation_ts>2019-04-29 17:59:21 -0700</creation_ts>
          <short_desc>[B3] Tails of size 1 can be safely duplicated regardless of their number of predecessors</short_desc>
          <delta_ts>2019-05-03 10:53:18 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>ews-watchlist</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>1531394</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-04-29 17:59:21 -0700</bug_when>
    <thetext>Replacing a jump (one instruction) by a branch/switch/return (whatever the jump points to, also one instruction) cannot increase the number of instructions, and can be helpful to to things like foldPathConstants that run just after duplicateTails.

In most cases we already do this, as the block will have few predecessors, but we should do it unconditionally.
The benefit is almost certainly negligible (a quick experiment shows we only neglect to do this optimization 23 times on all of JetStream2), but the change is microscopic too (literally just one line).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531396</commentid>
    <comment_count>1</comment_count>
      <attachid>368524</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-04-29 18:03:13 -0700</bug_when>
    <thetext>Created attachment 368524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531397</commentid>
    <comment_count>2</comment_count>
      <attachid>368524</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-04-29 18:14:04 -0700</bug_when>
    <thetext>Comment on attachment 368524
Patch

Forget it, I got confused between successors and predecessors, this check does not do at all what I thought.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368524</attachid>
            <date>2019-04-29 18:03:13 -0700</date>
            <delta_ts>2019-04-29 18:14:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch197398</filename>
            <type>text/plain</type>
            <size>1305</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDI4YWVjYTQ2MGNhLi4zMTcyY2VlZWIyNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMDQtMjkgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBbQjNdIFRhaWxzIG9m
IHNpemUgMSBjYW4gYmUgc2FmZWx5IGR1cGxpY2F0ZWQgcmVnYXJkbGVzcyBvZiB0aGVpciBudW1i
ZXIgb2YgcHJlZGVjZXNzb3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTczOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3BwOgorCiAyMDE5LTA0LTI2ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgbmV3IGJ1aWxk
IHJ1bGUgZm9yIHBvc3QtcHJvY2Vzc2luZyBoZWFkZXJzIHdoZW4gdXNpbmcgWENCdWlsZApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCmluZGV4IGNmZjQ0
YTRjMWUwLi40YTk0OGE0NGQwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzRHVwbGljYXRlVGFpbHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1
cGxpY2F0ZVRhaWxzLmNwcApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAo
QmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKICAgICAgICAgICAgIGlmIChibG9jay0+c2l6
ZSgpID4gbV9tYXhTaXplKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
aWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21heFN1Y2Nlc3NvcnMpCisgICAgICAgICAg
ICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycyAmJiBibG9jay0+
c2l6ZSgpICE9IDEpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBpZiAo
YmxvY2stPmxhc3QoKS0+dHlwZSgpICE9IFZvaWQpIC8vIERlbW90aW5nIGRvZXNuJ3QgaGFuZGxl
IHRlcm1pbmFscyB3aXRoIHZhbHVlcy4KICAgICAgICAgICAgICAgICBjb250aW51ZTsK
</data>
<flag name="review"
          id="384802"
          type_id="1"
          status="-"
          setter="rmorisset"
    />
    <flag name="commit-queue"
          id="384803"
          type_id="3"
          status="-"
          setter="rmorisset"
    />
          </attachment>
      

    </bug>

</bugzilla>