<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 10/25/2018 1:58 PM, Ivchenko,
      Alexander via llvm-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:56C4D6786952674ABE1698B4500BD57070CC81BB@IRSMSX103.ger.corp.intel.com">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">* Due to the way successor and predecessor
          detection works, some CFG simplifications such as trivial
          block elimination may be blocked if they would result in
          duplicate successors for the callbr instruction, as such
          duplicate successors are incorrectly processed in the IR and
          cannot be removed due to being used by the callee</p>
      </div>
    </blockquote>
    <br>
    I'm not sure I follow what the issue is here; why can't a block
    appear multiple times in the successor list?  It happens routinely
    for other kinds of branches.<br>
    <br>
    <o:p></o:p>
    <blockquote type="cite"
cite="mid:56C4D6786952674ABE1698B4500BD57070CC81BB@IRSMSX103.ger.corp.intel.com">
      <div class="WordSection1">
        <p class="MsoNormal">* While the initial implementation of
          asm-goto won’t allow outputs, the instruction’s syntax
          supports them in principle, so the support for this can be
          added at a later date</p>
      </div>
    </blockquote>
    <br>
    It's fine if you don't want to actually implement this now, but we
    probably need a rough idea for how it will be implemented, so we're
    reasonably confident we won't have to change the semantics of
    callbr.  Specifically, do we need to impose any restrictions on the
    successors of a callbr to allow reasonable code generation?  Without
    any rules, PHI nodes involving the outputs of callbr instructions
    could be very awkward to lower.<br>
    <br>
    -Eli<br>
    <pre class="moz-signature" cols="72">-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</pre>
  </body>
</html>