[LLVMdev] First proof of concept of a LLVM driven backend for the neko virtual machine

Asger Ottar Alstrup asger at area9.dk
Wed May 19 07:06:25 PDT 2010


Hi,

Vadim Atlygin has been working on a LLVM backend for Neko, and we are
happy to announce that "Hello world" works now.

For LLVM readers, Neko is a tight virtual machine, which is primarily
targetted by haXe. haXe is a statically typed programming language
that has targets to JavaScript, Flash, as well as Neko. Both haXe and
Neko are developed by Nicolas Cannasse, with contributions from many
others. You can read more about haXe and Neko at www.haxe.org and
www.nekovm.org.

The current neko vm has a x86 JIT. The aim of this work is to get the
Neko VM to run fast on 64 bit machines, and hopefully improve
performance on 32 bit targets as well.

You can get the code from this repository:
http://github.com/vava/neko_llvm_jit

The work is still incomplete - only the first 10 opcodes out of 66 are
implemented, but there is enough to get "Hello world" and simple
arithmetic to work. The current port is still slower than the existing
VM, but that is expected. The next steps are to implement the rest of
the opcodes. At first, we will just plug them up to use c callbacks,
and then as a next step, convert them to real LLVM bytecodes later.
Until we have real LLVM produced for the opcodes, it will be slower
than the original VM.

If you want to help out, you can contribute test cases for opcodes,
implement c callback implementations for some of the opcodes, or even
better optimized code for opcodes. We propose to use the Neko mailing
list for discussion on this.

Regards,
Vadim Atlygin & Asger Ottar Alstrup




More information about the llvm-dev mailing list