LLVM backend: "Hello world" in haXe works

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

LLVM backend: "Hello world" in haXe works

alstrup
Hi,

Today, Vadim finished implementing all of the opcodes, and now "Hello world" in haXe works. This includes jitting and running all of the haXe neko runtime before finally printing "Hello world". Jitting the runtime takes about a second, but it is a significant milestone: now it works.

From now on, the next steps are to try with bigger haXe programs, and fix any remaining bugs. After this, work can start to profile and optimize this stuff. Right now, about 19 of the opcodes are C callbacks, and thus not subject to LLVM's optimizations. Depending on what the profiling and optimization work turns out, some of those opcodes can be rewritten to LLVM opcodes to expose more stuff to optimizations.

The link to the code is here:


Go check it out. If you have a Linux box, it is really easy to compile the code and try it out.

Regards,
Asger


--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: LLVM backend: "Hello world" in haXe works

Nicolas Cannasse
Asger Ottar Alstrup a écrit :

> Hi,
>
> Today, Vadim finished implementing all of the opcodes, and now "Hello
> world" in haXe works. This includes jitting and running all of the haXe
> neko runtime before finally printing "Hello world". Jitting the runtime
> takes about a second, but it is a significant milestone: now it works.
>
>  From now on, the next steps are to try with bigger haXe programs, and
> fix any remaining bugs. After this, work can start to profile and
> optimize this stuff. Right now, about 19 of the opcodes are C callbacks,
> and thus not subject to LLVM's optimizations. Depending on what the
> profiling and optimization work turns out, some of those opcodes can be
> rewritten to LLVM opcodes to expose more stuff to optimizations.
>
> The link to the code is here:
>
> http://github.com/vava/neko_llvm_jit

Nice ;)

One good "real world" example would be to run the neko compiler on top
of it. This will give a good overview of the speed since nekoml mostly
uses function calls and neko arrays (not that much objects).

Best,
Nicolas

--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: LLVM backend: "Hello world" in haXe works

Gamehaxe
Hi,
Don't suppose you have a windows build? A neko.exe I can drop in?
If so, I would love to rerun the physaxe test.

Hugh

> Asger Ottar Alstrup a écrit :
>> Hi,
>>  Today, Vadim finished implementing all of the opcodes, and now "Hello  
>> world" in haXe works. This includes jitting and running all of the haXe  
>> neko runtime before finally printing "Hello world". Jitting the runtime  
>> takes about a second, but it is a significant milestone: now it works.
>>   From now on, the next steps are to try with bigger haXe programs, and  
>> fix any remaining bugs. After this, work can start to profile and  
>> optimize this stuff. Right now, about 19 of the opcodes are C  
>> callbacks, and thus not subject to LLVM's optimizations. Depending on  
>> what the profiling and optimization work turns out, some of those  
>> opcodes can be rewritten to LLVM opcodes to expose more stuff to  
>> optimizations.
>>  The link to the code is here:
>>  http://github.com/vava/neko_llvm_jit
>
> Nice ;)
>
> One good "real world" example would be to run the neko compiler on top  
> of it. This will give a good overview of the speed since nekoml mostly  
> uses function calls and neko arrays (not that much objects).
>
> Best,
> Nicolas

--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: LLVM backend: "Hello world" in haXe works

Vadim Atlygin
Hi Hugh,
   no, building it for Windows would take more time than we are willing to spend right now. Linux version is more important to us but eventually we will have Windows build and we will let you know when it happens.

Best regards,
Vadim.

On Thu, Jun 3, 2010 at 12:24 AM, Hugh Sanderson <[hidden email]> wrote:
Hi,
Don't suppose you have a windows build? A neko.exe I can drop in?
If so, I would love to rerun the physaxe test.

Hugh


Asger Ottar Alstrup a écrit :
Hi,
 Today, Vadim finished implementing all of the opcodes, and now "Hello world" in haXe works. This includes jitting and running all of the haXe neko runtime before finally printing "Hello world". Jitting the runtime takes about a second, but it is a significant milestone: now it works.
 From now on, the next steps are to try with bigger haXe programs, and fix any remaining bugs. After this, work can start to profile and optimize this stuff. Right now, about 19 of the opcodes are C callbacks, and thus not subject to LLVM's optimizations. Depending on what the profiling and optimization work turns out, some of those opcodes can be rewritten to LLVM opcodes to expose more stuff to optimizations.
 The link to the code is here:
 http://github.com/vava/neko_llvm_jit

Nice ;)

One good "real world" example would be to run the neko compiler on top of it. This will give a good overview of the speed since nekoml mostly uses function calls and neko arrays (not that much objects).

Best,
Nicolas

--
haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org