<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Vivek,<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 16, 2016, at 1:00 PM, vivek pandya via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hello,<div class=""><br class=""></div><div class="">Probably this may be too late to start thinking about this project but I think this is particularly useful feature for LLVM. </div></div></div></blockquote><div><br class=""></div><div>+1. I’d like to use something this feature in GlobalISel. The idea is that has as soon as we lowered the LLVM IR of the whole module to MachineInstr, the LLVM IR should be deallocable.</div><div>In other words, the MachineModule/MachineFunctions should contain enough information such that we do not have to keep the LLVM IR around.</div><div><br class=""></div><div>One of the main challenge is about alias analysis information that are tight with LLVM IR, but may be used in MachineFunctionPass.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">A quick use I can think of this is Implementing Inter-procedural Register Allocation ( for Research purpose ).</div><div class=""><br class=""></div><div class="">I have start looking at the code for MachineFunctionPass, I think currently MachineModule class is not available ( the project work will include that ) but trying to find out required details to first create a MachineModule class which holds references to required information. I am also trying to figure out what are the things should compose MachineModule class ( some sort of analogy with Module class used for IR passes)</div></div></div></blockquote><div><br class=""></div><div>At least for GlobalISel, we would need a way to create and get the global variables of a Module, but lowered to MachineInstr (or MC) level.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">After that I think next step is to extend the ModulePass and let ModulePass execute optimization provide enough information.</div></div></div></blockquote><div><br class=""></div>+1</div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">Am I going in correct direction?</div></div></div></blockquote><div><br class=""></div><div>Yes, at least, it makes sense to me.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">Please provide some pointers.</div></div></div></blockquote><div><br class=""></div><div>Other than gathering feedback on what is needed and trying, I unfortunately cannot offer anything else.</div><div><br class=""></div>Cheers,</div><div>-Quentin<br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">Sincerely,<br clear="all" class=""><div class=""><div class="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><i class=""><font size="2" face="monospace, monospace" class=""><b class="">Vivek Pandya</b></font></i><div class=""><br class=""></div></div></div></div></div></div>
</div></div>
_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br class=""></div></blockquote></div><br class=""></div></body></html>