<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Aug 8, 2016 at 11:34 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@gmail.com" target="_blank">chandlerc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><span class=""><div dir="ltr">On Thu, Aug 4, 2016 at 3:38 AM Sean Silva via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><span style="line-height:1.5">The subsequent discussion also contained Hal saying:</span><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div>"I'll go back to my previous position: we need a general dependency graph built as the analysis cache is used"</div><div><a href="http://lists.llvm.org/pipermail/llvm-dev/2016-July/102333.html" target="_blank">http://lists.llvm.org/<wbr>pipermail/llvm-dev/2016-July/<wbr>102333.html</a><br></div><div><br></div><div>With Mehdi replying</div><div>"I share the same feeling."</div><div><a href="http://lists.llvm.org/pipermail/llvm-dev/2016-July/102334.html" target="_blank">http://lists.llvm.org/<wbr>pipermail/llvm-dev/2016-July/<wbr>102334.html</a><br></div><div><br></div><div>And no objection from you.</div></div></div></div></div></blockquote><div><br></div></span><div>Silence is not agreement.</div><span class=""><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><span style="line-height:1.5">Your only post later on this topic was: </span><a href="http://lists.llvm.org/pipermail/llvm-dev/2016-July/102339.html" style="line-height:1.5" target="_blank">http://lists.llvm.org/<wbr>pipermail/llvm-dev/2016-July/<wbr>102339.html</a><br></div><div>which was largely about terminology, and some hand-waving of solutions which I explained were inadequate: <a href="http://lists.llvm.org/pipermail/llvm-dev/2016-July/102346.html" target="_blank">http://lists.llvm.org/<wbr>pipermail/llvm-dev/2016-July/<wbr>102346.html</a></div><div><br></div><div>And again, you did not provide any response.</div></div></div></div></blockquote><div><br></div></span><div>That doesn't mean I agree with your analysis.</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Just because we could hypothetically refactor a large part of the codebase to avoid some specific instances of the issue doesn't mean that we don't need to solve it. And if we need to solve it anyway, then the argument for doing such a refactoring is quite weak, since it isn't needed.</div></div></div></div></blockquote><div><br></div></span><div>Not necessarily. I presented specific reasons why I think this refactoring would be beneficial in general. And knowing how widespread a pattern is does influence the technique best used to address the problem.</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div><br>I continue to think the plan at the bottom of that message is the correct way forward until we do the mentioned refactorings of analyses and some of the infrastructure stabilizes.</div></div></div></blockquote><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>There are a few cases for which it is not sufficient to just pass in through the query path.</div><div>Also, it's not clear if this is feasible e.g. for AA where different AA's have different information needed by their query paths.</div></div></div></div></blockquote><div><br></div></span><div>Yes, I suspect there are some cases where this isn't the appropriate technique. But what remains to be seen IMO is what those cases look like and what the best technique would be in the face of some of these being refactored as I have suggested.</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><span style="line-height:1.5">Also, are you suggesting that we need to modify every query of each of the following analyses before the new PM can be used with basic confidence that there aren't going to be use-after-free errors?</span></div></div></div></div></blockquote><div><br></div></span><div>No, I suggested that we work-around the issues with the (admittedly error prone) manual invalidation until we could do these refactorings and evaluate the best path forward.</div><div><br></div><div>However, I suspect there is a *very small* bug that makes the manual invalidation not work. I would like to fix that, but I've been focused (at your and others' request) at finishing the CG-related work.</div></div></div></blockquote><div><br></div><div>Okay, I'll take a break from this PM stuff for a month or so.</div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div><br></div><div>But even then, this list:</div><span class=""><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><span style="line-height:1.5">BFI</span><br></div><div>SCEV</div><div>BasicAA</div><div>LVI</div><div>DemandedBits</div><div>MemDep</div><div>MemorySSA</div><div>SCEVAA</div><div>LoopAccessAnalysis</div><div>DependenceAnalysis</div></div></div></div></blockquote><div><br></div></span><div>Does not actually scare me. It's a lot, but it is tractable IMO.</div></div></div>
</blockquote></div><br></div></div>