RFD: AOT for AArch64 (original) (raw)

Dmitry Chuyko dmitry.chuyko at bell-sw.com
Thu Mar 29 15:08:54 UTC 2018


Andrew,

java.base can be compiled and used successfully in basic scenarios, I'll try something more complicated.

But here is some statistics about aot-compiled methods in modules I got:

Non-tiered

java.base: 13537 methods compiled, 37750 methods failed

Tiered (less successful)

java.base: 12 methods compiled, 51275 methods failed jdk.compiler: 0 methods compiled, 12495 methods failed jdk.internal.vm.ci: 0 methods compiled, 1792 methods failed jdk.scripting.nashorn: 4 methods compiled, 11877 methods failed

Vast majority of failed compilations is

org.graalvm.compiler.graph.GraalGraphError: org.graalvm.compiler.debug.GraalError: Emitting code to load a metaspace address is not currently supported on aarch64

also there are many

org.graalvm.compiler.graph.GraalGraphError: org.graalvm.compiler.debug.GraalError: Emitting code to load an object address is not currently supported on aarch64

-Dmitry

On 03/23/2018 09:11 PM, Andrew Haley wrote:

How to build it:

Check out jdk-hs. Apply http://cr.openjdk.java.net/~aph/jaotc/jdk-hs-1/ to that checkout then build OpenJDK images. Then $ git checkout https://github.com/theRealAph/graal.git $ cd graal $ git branch aarch64-branch-overflows MAKE SURE that JAVAHOME is pointing at the jdk-hs you just built: $ export JAVAHOME=/local/jdk-hs/build/linux-aarch64-normal-server-release/images/jdk/ Follow the "Building Graal" instructions at https://github.com/theRealAph/graal/tree/aarch64-branch-overflows/compiler My graal is in /local/graal/ and my jdk-hs is in /local/jdk-hs/. To run jaotc, I do something like this: _/local/jdk-hs/build/linux-aarch64-normal-server-release/images/jdk/bin/jaotc _ _-J--module-path=/local/graal/graal/sdk/mxbuild/modules/org.graalvm.graalsdk.jar:/local/graal/graal/truffle/mxbuild/modules/com.oracle.truffle.truffleapi.jar _ _-J--upgrade-module-path=/local/graal/graal/compiler/mxbuild/modules/jdk.internal.vm.compiler.jar _ myjar.jar --output myjar.so Note that the "-J" commands point jaotc at the version of Graal you've just built rather than OpenJDK's built-in version of Graal. Enjoy.



More information about the hotspot-dev mailing list