[LLVMdev] Avoiding jump (branch) instructions in a LLVM JavaScript backend

Filipe Cabecinhas filcab at gmail.com
Mon Jan 5 08:12:32 PST 2009


Hi,

Some time ago a friend of mine made a conversion script from AGI (an  
early virtual machine) to Javascript, including rudimentary goto  
support. He says it's not the best code in the world but you can take  
a look around: http://web.ist.utl.pt/~antonio.afonso/agi/logic.phps.  
There's an AGI emulator that plays Leisure Suite Larry a directory  
above ;-)

You could also convert the LLVM's IR (SSA) to CPS and then you could  
just directly emit the javascript code :-P

Regards,

   F

On 4 Jan, 2009, at 17:29, Charles Ying wrote:

> Hello llvm-dev,
>
> I've been hacking on a JavaScript backend to LLVM, starting with the  
> CBackend as base.
>
> Sadly, JavaScript does not support a "goto" style of jump  
> instruction, making it "tricky" to code generate a jump instruction.
>
> What might you recommend for avoiding jump instructions? Is there a  
> transformation for something like this or any other ideas? The only  
> solution I see at the moment is to write a small VM execution loop  
> in JavaScript, but I was hoping that there might be other solutions.
>
> Thanks!
> Charles
>
> _______________________________________________
> 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/20090105/cb04fb21/attachment.html>


More information about the llvm-dev mailing list