Vanderson Martins do Rosario
2014-Oct-14 21:52 UTC
[LLVMdev] How do I get MachineFunctions?
Hi everybody, I know that this may be a very silly question, but seriously, I'm totally lost. So, what I want to know is how from my Module I can get MachineFunctions or MachineBasicBlocks. I'm able to read a file with LLVM IR, create the Module and I also managed to create some passes for it, but what I want is to see the x86-64 assembly that this IR generates and map MachineBasicBlocks with BasicBlocks. I know that I should follow the Instruction Selection steps from http://llvm.org/docs/CodeGenerator.html#using-the-machineinstrbuilder-h-functions, but I couldn't figure it out how to do this. I also tried to read the llc's code, but it didn't help me so much. I would be grateful if somebody show me an example of how from a Module I can get MachineBasicBlocks. Thank you, Vanderson M. Rosario -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141014/90bf7c30/attachment.html>
Dear Vanderson, You need to write a MachineFunctionPass instead of a ModulePass or FunctionPass. A MachineFunctionPass is given a MachineFunction to analyze/transform in its runOnFunction() method. MachineFunctionPass'es are run by llc and other LLVM-based tools that generate native code (such as the libLTO plugin and Clang). Regards, John Criswell On 10/14/14, 4:52 PM, Vanderson Martins do Rosario wrote:> Hi everybody, > > I know that this may be a very silly question, but seriously, I'm > totally lost. > > So, what I want to know is how from my Module I can get > MachineFunctions or MachineBasicBlocks. > > I'm able to read a file with LLVM IR, create the Module and I also > managed to create some passes for it, but what I want is to see the > x86-64 assembly that this IR generates and map MachineBasicBlocks with > BasicBlocks. > > I know that I should follow the Instruction Selection steps from > http://llvm.org/docs/CodeGenerator.html#using-the-machineinstrbuilder-h-functions, > but I couldn't figure it out how to do this. I also tried to read the > llc's code, but it didn't help me so much. > > I would be grateful if somebody show me an example of how from a > Module I can get MachineBasicBlocks. > > Thank you, > > Vanderson M. Rosario > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-- John Criswell Assistant Professor Department of Computer Science, University of Rochester http://www.cs.rochester.edu/u/criswell -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141016/bc25e912/attachment.html>