RFD: AOT for AArch64

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 JAVA_HOME is pointing at the jdk-hs you just built:
>
>   $ export JAVA_HOME=/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.graal_sdk.jar:/local/graal/graal/truffle/mxbuild/modules/com.oracle.truffle.truffle_api.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