[LLVMdev] Strategy for leveraging llvm optimizations in vm

John Criswell criswell at illinois.edu
Tue Sep 13 07:20:03 PDT 2011

On 9/13/11 8:14 AM, Michael Clagett 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.

Another option for handling the assembly language fragments is to 
convert them into inline assembly code within the LLVM IR that you 
generate.  This might be worth exploring if converting the assembly code 
into LLVM IR is either difficult or causes a performance hit.

-- John T.

> 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

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

More information about the llvm-dev mailing list