<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<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:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:2.0cm 42.5pt 2.0cm 3.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="RU" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">Actually, I’m not. I’m not well familiar with MSSA at all. Just looking into MergeBlockIntoPredecessor, there we do MSSA update after we apply updates to DomTree. I’ll take a bit more
 digging into it, maybe the way how we update it now is entirely wrong.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">I’ll prepare a patch that makes updates in sync to avoid potential problems of this type in the future.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">--Nax<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> Alina Sbirlea <alina.sbirlea@gmail.com>
<br>
<b>Sent:</b> Thursday, February 21, 2019 1:12 PM<br>
<b>To:</b> Maxim Kazantsev <max.kazantsev@azul.com><br>
<b>Cc:</b> rtereshin@apple.com; dberlin@dberlin.org; llvm-commits <llvm-commits@lists.llvm.org>; asbirlea@google.com<br>
<b>Subject:</b> Re: [llvm] r353911 - [LoopSimplifyCFG] Re-enable const branch folding by default<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Are you sure your update is complete?<br>
It should theoretically match the DT update, i.e. include insert edges not just the delete. All updates should be done together using the same list of updates used for DT, and an up to date DT (see MSSAU->applyUpdates(DTUpdates, DT)).<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Wed, Feb 20, 2019 at 9:53 PM Maxim Kazantsev via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">Should be fixed by
<a href="https://reviews.llvm.org/rL354547" target="_blank">https://reviews.llvm.org/rL354547</a>
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> Maxim Kazantsev
<br>
<b>Sent:</b> Thursday, February 21, 2019 11:49 AM<br>
<b>To:</b> '<a href="mailto:rtereshin@apple.com" target="_blank">rtereshin@apple.com</a>' <<a href="mailto:rtereshin@apple.com" target="_blank">rtereshin@apple.com</a>><br>
<b>Cc:</b> llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>>;
<a href="mailto:dberlin@dberlin.org" target="_blank">dberlin@dberlin.org</a>; <a href="mailto:asbirlea@google.com" target="_blank">
asbirlea@google.com</a><br>
<b>Subject:</b> RE: [llvm] r353911 - [LoopSimplifyCFG] Re-enable const branch folding by default</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">Hi Roman,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">Thanks for notification! I’ll fix it asap.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US">--Max</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span lang="EN-US">From:</span></b><span lang="EN-US">
<a href="mailto:rtereshin@apple.com" target="_blank">rtereshin@apple.com</a> <<a href="mailto:rtereshin@apple.com" target="_blank">rtereshin@apple.com</a>>
<br>
<b>Sent:</b> Thursday, February 21, 2019 10:25 AM<br>
<b>To:</b> Maxim Kazantsev <<a href="mailto:max.kazantsev@azul.com" target="_blank">max.kazantsev@azul.com</a>><br>
<b>Cc:</b> llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>>;
<a href="mailto:dberlin@dberlin.org" target="_blank">dberlin@dberlin.org</a>; <a href="mailto:asbirlea@google.com" target="_blank">
asbirlea@google.com</a><br>
<b>Subject:</b> Re: [llvm] r353911 - [LoopSimplifyCFG] Re-enable const branch folding by default</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><span style="font-size:10.0pt">Hi Max,<br>
<br>
Looks like this doesn’t collaborate with MemorySSA very well:<br>
<br>
./bin/opt -loop-simplifycfg loop-simplifycfg-term-folding-AND-mssa-loop-dependency.ll -enable-mssa-loop-dependency=true -verify-memoryssa=true -enable-loop-simplifycfg-term-folding=true -S -o -<br>
Assertion failed: (find(predecessors(&B), Phi->getIncomingBlock(I)) != pred_end(&B) && "Incoming phi block not a block predecessor"), function verifyDefUses, file ../lib/Analysis/MemorySSA.cpp, line 1947.<br>
<br>
The IR is:<br>
<br>
define void @main() {<br>
entry:<br>
  br label %for.body<br>
<br>
for.body:                                         ; preds = %exit, %entry<br>
  br label %<a href="http://switch.bb" target="_blank">switch.bb</a><br>
<br>
<a href="http://switch.bb" target="_blank">switch.bb</a>:                                        ; preds = %for.body<br>
  switch i2 1, label %<a href="http://default.bb" target="_blank">default.bb</a> [<br>
    i2 1, label %<a href="http://case.bb" target="_blank">case.bb</a><br>
  ]<br>
<br>
<a href="http://case.bb" target="_blank">case.bb</a>:                                          ; preds = %switch<br>
  br label %exit<br>
<br>
<a href="http://default.bb" target="_blank">default.bb</a>:                                       ; preds = %switch<br>
  unreachable<br>
<br>
exit:                                             ; preds = %<a href="http://case.bb" target="_blank">case.bb</a><br>
  call void @foo()<br>
  br label %for.body<br>
}<br>
<br>
declare void @foo()<br>
<br>
<br>
Thanks,<br>
Roman</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><span style="font-size:10.0pt"><br>
<br>
> On Feb 12, 2019, at 10:12 PM, Max Kazantsev via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
> <br>
> Author: mkazantsev<br>
> Date: Tue Feb 12 22:12:48 2019<br>
> New Revision: 353911<br>
> <br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=353911&view=rev" target="_blank">
http://llvm.org/viewvc/llvm-project?rev=353911&view=rev</a><br>
> Log:<br>
> [LoopSimplifyCFG] Re-enable const branch folding by default<br>
> <br>
> Known underlying bugs have been fixed, intensive fuzz testing did not<br>
> find any new problems. Re-enabling by default. Feel free to revert if<br>
> it causes any functional failures.<br>
> <br>
> Modified:<br>
>    llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp<br>
> <br>
> Modified: llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp?rev=353911&r1=353910&r2=353911&view=diff" target="_blank">
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp?rev=353911&r1=353910&r2=353911&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (original)<br>
> +++ llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp Tue Feb 12 22:12:48 2019<br>
> @@ -41,7 +41,7 @@ using namespace llvm;<br>
> #define DEBUG_TYPE "loop-simplifycfg"<br>
> <br>
> static cl::opt<bool> EnableTermFolding("enable-loop-simplifycfg-term-folding",<br>
> -                                       cl::init(false));<br>
> +                                       cl::init(true));<br>
> <br>
> STATISTIC(NumTerminatorsFolded,<br>
>           "Number of terminators folded to unconditional branches");<br>
> <br>
> <br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" target="_blank">
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a></span><o:p></o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</body>
</html>