Implementing the MachineInstrBuilder class
The MachineInstrBuilder
class exposes a function called BuildMI()
. This function is used to build machine instructions.
How to do it…
Machine instructions are created by using the BuildMI
functions, located in the include/llvm/CodeGen/MachineInstrBuilder.h
file. The BuildMI
functions make it easy to build arbitrary machine instructions.
For example, you can use BuildMI
in code snippets for the following purposes:
- To create a
DestReg = mov 42
(rendered in the x86 assembly asmov DestReg, 42
) instruction:MachineInstr *MI = BuildMI(X86::MOV32ri, 1, DestReg).addImm(42);
- To create the same instruction, but insert it at the end of a basic block:
MachineBasicBlock &MBB = BuildMI(MBB, X86::MOV32ri, 1, DestReg).addImm(42); ...
Get LLVM Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.