Hi, Does LLVM have java frontend which can change Java bytecode to LLVM IR? Thanks a lot! Best, Linhai -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160112/1d9c0c7b/attachment.html>
There was such a front end as an option (called "portable mode") in the ART compiler for Android, but it's no longer used, I believe mostly because it was thought to be too slow to use on-device during app install or OS upgrade. Of course it's from Dalvik bytecodes not JDK ones. On Tue, Jan 12, 2016 at 9:50 AM, Linhai Song via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi, > > > Does LLVM have java frontend which can change Java bytecode to LLVM IR? > > > Thanks a lot! > > > Best, > > > Linhai > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160112/58ae3b67/attachment.html>
David Chisnall via llvm-dev
2016-Jan-12 09:35 UTC
[llvm-dev] Does LLVM have java frontend?
It’s also worth noting that a Java front end is largely useless in isolation. AoT-compiled Java will depend on a load of run-time infrastructure (for GC, cast-to-interface, down-cast, reflection, and so on). In interpreted or JIT’d Java implementations, these are all highly specific to the JVM implementation (things like the layouts of classes are a bit more portable, but object layouts are very variable. For example, a lot of JVMs - but not all - put non-pointer fields before the class pointer so that the GC won’t pull them into the cache). You can have a Java bytecode to VMKit compiler, or a Java bytecode to OpenJDK compiler, but a stand-alone Java compiler in isolation is a largely meaningless concept. David> On 12 Jan 2016, at 09:19, Bruce Hoult via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > There was such a front end as an option (called "portable mode") in the ART compiler for Android, but it's no longer used, I believe mostly because it was thought to be too slow to use on-device during app install or OS upgrade. Of course it's from Dalvik bytecodes not JDK ones. > > On Tue, Jan 12, 2016 at 9:50 AM, Linhai Song via llvm-dev <llvm-dev at lists.llvm.org> wrote: > Hi, > > > Does LLVM have java frontend which can change Java bytecode to LLVM IR? > > > Thanks a lot! > > > Best, > > > Linhai > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
David Chisnall via llvm-dev
2016-Jan-12 11:08 UTC
[llvm-dev] Does LLVM have java frontend?
It’s also worth noting that a Java front end is largely useless in isolation. AoT-compiled Java will depend on a load of run-time infrastructure (for GC, cast-to-interface, down-cast, reflection, and so on). In interpreted or JIT’d Java implementations, these are all highly specific to the JVM implementation (things like the layouts of classes are a bit more portable, but object layouts are very variable. For example, a lot of JVMs - but not all - put non-pointer fields before the class pointer so that the GC won’t pull them into the cache). You can have a Java bytecode to VMKit compiler, or a Java bytecode to OpenJDK compiler, but a stand-alone Java compiler in isolation is a largely meaningless concept. David> On 12 Jan 2016, at 09:19, Bruce Hoult via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > There was such a front end as an option (called "portable mode") in the ART compiler for Android, but it's no longer used, I believe mostly because it was thought to be too slow to use on-device during app install or OS upgrade. Of course it's from Dalvik bytecodes not JDK ones. > > On Tue, Jan 12, 2016 at 9:50 AM, Linhai Song via llvm-dev <llvm-dev at lists.llvm.org> wrote: > Hi, > > > Does LLVM have java frontend which can change Java bytecode to LLVM IR? > > > Thanks a lot! > > > Best, > > > Linhai > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev> On 12 Jan 2016, at 09:19, Bruce Hoult via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > There was such a front end as an option (called "portable mode") in the ART compiler for Android, but it's no longer used, I believe mostly because it was thought to be too slow to use on-device during app install or OS upgrade. Of course it's from Dalvik bytecodes not JDK ones. > > On Tue, Jan 12, 2016 at 9:50 AM, Linhai Song via llvm-dev <llvm-dev at lists.llvm.org> wrote: > Hi, > > > Does LLVM have java frontend which can change Java bytecode to LLVM IR? > > > Thanks a lot! > > > Best, > > > Linhai > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev