Hello, I've looked around in the documentation, and I can't see anywhere where there is a backend plugin capability for LLVM. I'd like to be able to get the output of the instruction selector along with the LLVM IR, or perhaps instrument that. Is there any capability to have a backend plugin in LLVM at all? Perhaps what is necessary is to manually drive the backend from the perspective of a frontend plugin, so that I can turn off the default backend, and obtain the results of the backend within my frontend plugin. I don't like this as much though, because it requires that I dig into how LLVM stitches together it's phases. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180517/b052eddd/attachment.html>
On 5/17/2018 10:10 AM, Kenneth Adam Miller via llvm-dev wrote:> Hello, > > > I've looked around in the documentation, and I can't see anywhere > where there is a backend plugin capability for LLVM. I'd like to be > able to get the output of the instruction selector along with the LLVM > IR, or perhaps instrument that. > > > Is there any capability to have a backend plugin in LLVM at all?It sounds like you want to write a MachineFunctionPass as a plugin, and run it in the middle of the pass pipeline of an existing backend? No, there isn't any support for that; RegisterStandardPasses only works on IR. -Eli -- Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
On Thu, May 17, 2018 at 3:09 PM, Friedman, Eli <efriedma at codeaurora.org> wrote:> On 5/17/2018 10:10 AM, Kenneth Adam Miller via llvm-dev wrote: > >> Hello, >> >> >> I've looked around in the documentation, and I can't see anywhere where >> there is a backend plugin capability for LLVM. I'd like to be able to get >> the output of the instruction selector along with the LLVM IR, or perhaps >> instrument that. >> >> >> Is there any capability to have a backend plugin in LLVM at all? >> > > It sounds like you want to write a MachineFunctionPass as a plugin, and > run it in the middle of the pass pipeline of an existing backend? No, > there isn't any support for that; RegisterStandardPasses only works on IR. > > -Eli > > -- > Employee of Qualcomm Innovation Center, Inc. > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux > Foundation Collaborative Project > >Yeah, I just discovered MachineFunctionPass. I don't know that I want to run it in the middle of the pass pipeline of an existing backend so much as I want the desired target to run and then have my machine function pass run. If I can get the address of every machine instruction I will be very happy. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180517/b414c6d6/attachment.html>