23

I've been searching for a while now, but I could not find any engine that emits LLVM bytecode. But somehow I cannot belief there is no such engine :)

4
  • IIRC mozilla investigated the possibility of using LLVM as a backend for their JIT but ruled it out, saying it would be too slow or something like that Commented Dec 11, 2011 at 21:11
  • @CAFxX: Do you have any reference about that? Commented Mar 4, 2014 at 14:24
  • 3
    @Albert sure: hacks.mozilla.org/2009/07/tracemonkey-overview/comment-page-2/… Commented Mar 5, 2014 at 16:59
  • 2
    LLV8 is an experimental top-tier compiler for V8 JavaScript Engine. LLV8 leverages the power of LLVM MCJIT to produce highly optimized code. last commit was on Sep 8, 2016. Commented Jan 15, 2018 at 20:35

4 Answers 4

9

JXcore will be your best bet going forward IMHO - when they convert from V8 to LLVM, which is an objective of theirs when they reach version 2 (according to their roadmap), it will then compile your javascript sources into native code.

You can get more info on JXcore here.

This part of the answer is in a response to Albert's answer:

According to ktrzeciaknubisa's post they will publish the source as soon as they are out of the beta stages and have clean code...this might take some time.

Sign up to request clarification or add additional context in comments.

3 Comments

Nubisa halted active development on the JXcore platform.
Looks like it has now been replaced by this project: github.com/janeasystems/nodejs-mobile
...although it looks like nodejs-mobile is using V8, so I guess we still have to look to earlier projects for examples of targeting LLVM.
3

There doesn't seem to be any.

In the list of projects build with LLVM there is nothing about Javascript.

Comments

3

It appears Webkit now includes this functionality as of May 2014:

... the WebKit project has unified its existing JavaScript compilation infrastructure with the state-of-the-art LLVM optimizer.

https://webkit.org/blog/3362/introducing-the-webkit-ftl-jit/

The code for this seems to be here:

http://www.opensource.apple.com/source/JavaScriptCore/JavaScriptCore-7600.1.4.17.5/ftl/FTLLowerDFGToLLVM.cpp

1 Comment

They've since replaced LLVM with the Bare Bones Backend. webkit.org/blog/5852/introducing-the-b3-jit-compiler
1

JXCore (a fork of Nodejs) claims to have implemented that. Since Feb 2015, it is open source, the code is here on GitHub.

2 Comments

Where is it stated, that JXcore is a commercial fork? In the contrary - it is an open source project github.com/jxcore/jxcore (starting from mid of Feb 2015, but was never commercial though)
But they moved that to "somewhere down the road" and use V8 and SpiderMonkey now

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.