JVMCI and Tiered compilation

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Dec 7 22:37:54 UTC 2018


Hi Jp,

Graal is only replacing C2 at tier4. C1 is still present.

You need to use Tiered compilation with Graal so that C1 will compile Graal code (which is Java code 
and executed in Intepreter if it is not JIT compiled) otherwise Graal have to compile itself which 
is very slow.

It is known issue and we together with Oracle Labs are working on libgraal project to precompile 
Graal into native code as separate shared library loaded by Hotspot.

Regards,
Vladimir

On 12/7/18 2:25 PM, Halimi, Jean-Philippe wrote:
> Dear all,
> 
> I am currently looking into performance numbers with Graal as a JVMCI/JIT compiler. I see very high interpreter usage with Graal. I have experimented enabling and disabling the tiered compilation knob to see the impact on performance.
> 
> However, I am a bit confused on how JVMCI compilers is supposed to be used in the tiered compilation policy, since we technically have only one compiler to use. Typically, Hotspot methods have 5 levels in its tiered mode:
> 
>   *   0 - interpreter (CompLevel_none)
>    *   1 - pure C1 (CompLevel_simple)
>    *   2 - C1 with invocation and backedge counting (CompLevel_limited_profile)
>    *   3 - C1 with full profiling (CompLevel_full_profile)
>    *   4 - C2 (CompLevel_full_optimization)
> 
> When using JVMCI, are we compiling from state 1 to 4 with the JVMCI compiler?
> 
> Thanks
> -Jp
> 


More information about the graal-dev mailing list