[LLVMdev] Strategy for leveraging llvm optimizations in vm

Reid Kleckner reid.kleckner at gmail.com
Tue Sep 13 06:40:15 PDT 2011


If you x86 assembly is sufficiently simple, I don't see any reason why
you couldn't programmatically raise it back up to LLVM IR.  People
have tried this in the past (qemu, I think?  I can't remember), and it
usually results in some considerable slowdowns.  I'd imagine that if
your asm is sufficiently restricted, such as not needing to worry
about arithmetic flags, the x87 FPU stack, or arbitrary control flow,
then it should be easy to do without introducing any slowdowns.

Reid

On Tue, Sep 13, 2011 at 9:14 AM, Michael Clagett <mclagett at hotmail.com> wrote:
>
> Hi --
>
> I'm still very much a newbie with llvm, but am looking (hopefully) to use it
> to compile into native intel code a set of source that is a combination of
> byte codes for my own custom vm and intel code that has been coded in
> assembly language directly.
>
> In an earlier exchange, I already discovered that llvm does not do any
> optimizations on intel assembly language code.  This would be an interesting
> thing to add, I believe, and I may make some progress in that direction as I
> proceed.  But in the meantime I'm wondering if the following makes sense:
> To write two separate translation mechanisms; one that translates the
> assembler code associated with each of my byte codes into a sequence of llvm
> intermediate code instructions, and the other to do the same with
> instructions coded directly in intel assembly (i.e there would be a
> one-to-one correspondence between intel assembly language statements and
> llvm intermediate code statements, substituting real register assignments
> with llvm virtual register assignments.
>
> It strikes me that if I did this, I would then have instruction sequences
> (whether originating in my byte code or in intel assembly language) that
> could be submitted to the llvm optimization engine.  Does this make sense to
> any of you old hands?
>
> Thanks.
>
> Mike
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>




More information about the llvm-dev mailing list