[LLVMdev] How do I get MachineFunctions?

John Criswell jtcriswel at gmail.com
Thu Oct 16 06:17:09 PDT 2014

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).


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141016/bc25e912/attachment.html>

More information about the llvm-dev mailing list