[LLVMdev] Strategy for leveraging llvm optimizations in vm
Jean-Daniel Dupas
devlists at shadowlab.org
Tue Sep 13 07:12:48 PDT 2011
Le 13 sept. 2011 à 15:40, Reid Kleckner a écrit :
> 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),
IIRC, this is what libcpu does.
http://www.libcpu.org/wiki/Main_Page
> 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
>>
>>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-- Jean-Daniel
More information about the llvm-dev
mailing list