<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:jeremy.morse.llvm@gmail.com" title="Jeremy Morse <jeremy.morse.llvm@gmail.com>"> <span class="fn">Jeremy Morse</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - BranchFolder not debug invariant"
   href="https://bugs.llvm.org/show_bug.cgi?id=43964">bug 43964</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">CC</td>
           <td>
                
           </td>
           <td>aprantl@apple.com, vsk@apple.com
           </td>
         </tr>
          </table><span class="vcard"><a class="email" href="mailto:bjorn.a.pettersson@ericsson.com" title="bjorn.a.pettersson@ericsson.com">bjorn.a.pettersson@ericsson.com</a>
</span> changed
          <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - BranchFolder not debug invariant"
   href="https://bugs.llvm.org/show_bug.cgi?id=43964">bug 43964</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Fixed By Commit(s)</td>
           <td>
                
           </td>
           <td>rG898de302919b
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>RESOLVED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - BranchFolder not debug invariant"
   href="https://bugs.llvm.org/show_bug.cgi?id=43964#c5">Comment # 5</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - BranchFolder not debug invariant"
   href="https://bugs.llvm.org/show_bug.cgi?id=43964">bug 43964</a>
              from <span class="vcard"><a class="email" href="mailto:bjorn.a.pettersson@ericsson.com" title="bjorn.a.pettersson@ericsson.com">bjorn.a.pettersson@ericsson.com</a>
</span></b>
        <pre>The -g invariance introduced by <a href="https://reviews.llvm.org/D66467">https://reviews.llvm.org/D66467</a> has now been
fixed in rG898de302919b (<a href="https://reviews.llvm.org/D70091">https://reviews.llvm.org/D70091</a>).

The fix restores the old behavior to say that a found common tail cover the
whole basic block even if debug instructions are found before the tail.

As the earlier comments talk a lot about CFI directives I want to highlight
that the fix does not change anything related to CFI directives. If such
instructions are found before the common tail, then we still need to split the
BB when doing a tail merge.</pre>
        </div>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - BranchFolder not debug invariant"
   href="https://bugs.llvm.org/show_bug.cgi?id=43964#c4">Comment # 4</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - BranchFolder not debug invariant"
   href="https://bugs.llvm.org/show_bug.cgi?id=43964">bug 43964</a>
              from <span class="vcard"><a class="email" href="mailto:jeremy.morse.llvm@gmail.com" title="Jeremy Morse <jeremy.morse.llvm@gmail.com>"> <span class="fn">Jeremy Morse</span></a>
</span></b>
        <pre>Hi,

Bjorn wrote:
<span class="quote">> It seems like BlockFolder (BlockFolding.cpp) isn't caring that much about 
> CFI instruction inside the tail, but it does make sure it isn't chopping of 
> CFI instructions in the beginning of the block.</span >

I get the impression that this might be an artefact of its "advance then
rewind" approach, rather than something deliberate. One of the comments in the
large block you delete in D70091 illustrates a CFI_INSTRUCTION inside a tail
that shouldn't be "chopped off".

Then again, I know pretty much nothing about CFI anyway.

Paul wrote:
<span class="quote">> CFI (call frame information) is emitted whenever unwinding is a possibility.
> That can be with -g, it can also be with -fexceptions (and other similar
> codegen options).</span >

This sounds unpleasant -- if I understand correctly, then if only '-g' was
specified then we want to prioritise not changing codegen; but if -fexceptions
was specified then codegen _should_ change to make exceptions operate
correctly? That could then (potentially) mean two different ways of treating
CFI_INSTRUCTION.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>