[LLVMdev] LLVM IR to ISA
David Chisnall
David.Chisnall at cl.cam.ac.uk
Mon Nov 3 08:27:50 PST 2014
On 3 Nov 2014, at 08:54, Konstantinos Parasyris <koparasy at gmail.com> wrote:
> Hello,
>
> After instruction selection I would like to print out the selected instructions with the corresponding LLVM instructions. Something like this:
>
> LLVM Instruction -> { MCInst,
> MCInst,
> MCInst,
> MCInst
> }
>
> Is there a build-in way to do it?
Instruction selection happens on a basic block basis. You can dump the IR basic block and the machine basic block relatively easily, but N IR instructions may correspond to M machine instructions. There's no simple mapping from one IR instruction to multiple native instructions. For example, consider a GEP followed by a load. On x86 or ARM, this will typically be folded into a single instruction. Similarly, a ptrtoint, followed by a sequence of arithmetic, followed by an inttoptr, followed by a load or store may become a single instruction. The various SelectionDAG phases will split and combine instructions in various ways.
David
More information about the llvm-dev
mailing list