The underlying AOT compilation in JDK 9 is based on the Oracle project Graal--an open source compiler introduced with JDK 8 with a goal of improving the performance of the Java dynamic compiler. The AOT group had to modify it, mostly around constants processing and optimization. They have also added probabilistic profiling and a special inlining policy, thus making Grall more suitable for static compilation.
In addition to the existing compiling tool javac, a new jaotc tool is included in the JDK 9 installation. The resulting AOT shared libraries .so are generated using the libelf library--the dependency that is going to be removed in the future releases.
To start AOT compilation, a user has to launch jaotc ...