[LLVMdev] java front-end

nicolas geoffray nicolas.geoffray at gmail.com
Mon Jul 19 08:48:39 PDT 2010


Hi Joshua,

VMKit should be a perfect fit for your purposes. VMKit can take Java classes
and generate a dynamic library or an executable with it. Currently, it only
works on Linux/x86.

You will probably need to change the VMKit specific runtime functions (eg
for things like synchronization, exception throwing, object allocations,
etc) with Avian runtime functions.

Nicolas

On Fri, Jul 16, 2010 at 11:53 PM, Joshua Warner <joshuawarner32 at gmail.com>wrote:

> Hi Minas,
>
> Thanks!  I wasn't aware that VMKit had the ability to generate llvm code
> from .class / .jar files - I thought all of its code-generation capabilities
> were very closely tied to the VM itself.  I'll look into this.
>
> The motivation behind this project is to be able to get both the small size
> and fast startup times of Avian, along with the speed of llvm-generated
> code.
>
> Currently, to do aot compilation, Avian runs its (completely
> non-optimizing, but blazingly fast) JIT over all the methods in the selected
> classpath, and stores these methods in a bootimage, which it links
> statically with the main Avian executable.  All I want to do is use the llvm
> code generation in place of the Avian JIT when making this aot-compiled boot
> image.
>
> Regards,
> Joshua
>
>
> On Fri, Jul 16, 2010 at 1:59 PM, Minas Abrahamyan <minas.subs at gmail.com>wrote:
>
>> Hi Joshua,
>>
>> > I'm trying to use the Java front-end (which, based on svn commits,
>> appears
>> > to be three-years-dead),
>> > I'm trying to use llvm as a replacement aot compiler
>>
>> I'm not acquainted with the Avian JVM, but
>> haven't  you considered using VMkit llvm project, it contains
>> .class/.jar to llvm compiler, also JIT compiler(native code compiler)
>> and aot compiler.
>> And it's not three years-old
>>
>> Regards,
>> Minas
>>
>>
>> On Fri, Jul 16, 2010 at 9:41 PM, Joshua Warner <joshuawarner32 at gmail.com>
>> wrote:
>> > Hi,
>> >
>> > I'm trying to use the Java front-end (which, based on svn commits,
>> appears
>> > to be three-years-dead), and I'm running into some build errors.  In
>> that
>> > time did llvm change from building with exception handling and rtti to
>> > building without?
>> >
>> > I remember reading somewhere that llvm code should use dyn_cast instead
>> of
>> > dynamic_cast.  Do these need to be changed here?
>> >
>> > A little background:
>> > I'm trying to use llvm as a replacement aot compiler for the Avian JVM
>> (see
>> > oss.readytalk.com).  I figured I may be able to complete the java front
>> end,
>> > and sufficiently parameterize it to be used with Avian (which will
>> > essentially just provide runtime services like GC and exception
>> handling).
>> >
>> > Sincerely,
>> > Joshua
>>
>
>
> _______________________________________________
> 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/20100719/3d9d2fbc/attachment.html>


More information about the llvm-dev mailing list