<div dir="ltr">Hi Marcello,<div><br></div><div>Can you elaborate here a bit more? Mostly what it sounds like is just a direct port of Module pass to run over MFs, similar to what AsmPrinter does today, but also being able to have some analysis passes as well?</div><div><br></div><div>I realize my question seems a bit vague, but I'm trying to get a better idea of what the use case is here as it sounds like something that we could have the "MF pipeline" have and use and be (possibly) a better place to stick the AsmPrinter (we'd need to figure out things like globals, but that might be it).</div><div><br></div><div>Thanks!</div><div><br></div><div>-eric</div><div><br></div><div class="gmail_quote"><div dir="ltr">On Fri, Jan 22, 2016 at 10:44 PM Marcello Maggioni via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@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">The pass, the perspective of our use case, would need to be able some kind of synchronization point in the pipeline between MF passes (such that all the MF passes before have run on all the MachineFunctions in the Module before running the MachineModule pass)<br>
Currently the MachineFunctions are processed from the beginning to the end making it difficult to be able to do Machine level analysis without awful tricks (where we get information from multiple functions and merge them together in some way).<br>
Immutable passes would also need to be accessible.<br>
<br>
An important design decision would be to understand what can and cannot a MachineModulePass do to a hypotetical MachineModule (can it add MachineFunctions that are not connected to IR machine functions like a MachineFunction pass can add MachineBasicBlocks not connected to IR BasicBlocks?)<br>
<br>
Marcello<br>
<br>
> On 22 Jan 2016, at 15:16, Quentin Colombet <<a href="mailto:qcolombet@apple.com" target="_blank">qcolombet@apple.com</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> In the initial thread of the proposal for GlobalISel, I have mentioned that it may be interesting to have a kind of MachineModulePass.<br>
> Marcello mentioned this would be useful for their current pipeline.<br>
><br>
> I am interested in knowing:<br>
> 1. If anyone else is interested for such concept?<br>
> 2. What kind of information should we make accessible in an hypothetical MachineModule? I.e., how do you plan to use the MachineModulePass so that we make the right design decisions for the MachineModule feeding those passes?<br>
> 3. Who would be willing to work on that?<br>
><br>
> Thanks,<br>
> -Quentin<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>