<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 5, 2016 at 1:52 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: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"><span class=""><div dir="ltr">On Thu, May 5, 2016 at 1:50 PM Sean Silva <<a href="mailto:chisophugis@gmail.com" target="_blank">chisophugis@gmail.com</a>> wrote:<br></div><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_extra"><div class="gmail_quote">On Thu, May 5, 2016 at 1:24 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: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"><span><div dir="ltr">On Thu, May 5, 2016 at 12:12 PM Sean Silva <<a href="mailto:chisophugis@gmail.com" target="_blank">chisophugis@gmail.com</a>> wrote:<br></div><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_extra"><div class="gmail_quote">On Thu, May 5, 2016 at 1:29 AM, Chandler Carruth via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><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">Greetings folks,<div><br></div><div>I just wanted to post a brief update on the status of the new pass manager. Philip asked me to do this at last month's social and Life intervened, but he's still got a great point, so I wanted to get it out there with one day to spare before he nagged me again. =D</div><div><br></div><div>I'll keep it very brief and high level. If folks have questions about anything, happy to dig into it.</div><div><br></div><div>- The core framework is there. It works, and we even have CGSCC passes using both Module and Function analyses with caching and everything. Yay! We also have initial loop pass infrastructure thanks to Justin! Yay!</div><div><br></div><div>- The biggest missing piece of infrastructure IMO is communicating invalidation information between two parts of the pass manager itself when they are operating over the results of an analysis. Both the loop passes and the CGSCC passes really need this. I'm currently working on this and hope to finish the first cut at CGSCC stuff for this in a few days.</div><div><br></div><div>- The second biggest missing piece is a good system for managing sets of related analyses for the purpose of invalidation. Justin and I have discussed using designated enums that form sets, but there hasn't been a lot of concrete progress here.</div></div></blockquote><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Can we maybe just have a function for each "set"? e.g. you just call `preserveAllCFGPasses(PA)`.</div><div>We can maybe stamp out `preserveAllCFGPasses` and any others from the .def file to make sure there is a single point of truth.</div></div></div></div></blockquote><div><br></div></span><div>My preference would be to keep the participation in a set local to the analysis implementation.</div></div></div></blockquote><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Do you envision a generic set mechanism or just a couple hardcoded sets?</div></div></div></div></blockquote><div><br></div></span><div>Honestly haven't spent enough time looking at it to be terribly specific. This was just some ideas tossed around with Justin I'm afraid.</div><div><br></div><div>If this is an area you want to work on, try some things out and propose it?</div></div></div></blockquote><div><br></div><div> </div></div>I may try my hand at getting a simple `preserveAllCFGAnalyses(PA)` in place so that we at least can represent that semantic where it is needed instead of leaving FIXME comments.</div><div class="gmail_extra"><br></div><div class="gmail_extra">I'll leave it to you and Justin to come up with the right design, since you guys have it all in your heads; I'm fairly clueless about this stuff. Whatever you guys ultimately settle on you should be able to migrate to it with a simple NFC search and replace of the `preserveAllCFGAnalyses(PA)` calls.</div><div class="gmail_extra"><br></div><div class="gmail_extra">-- Sean Silva</div></div>