inconsistent inlining behavior with CompileOnly

Tobias Hartmann tobias.hartmann at oracle.com
Wed Jun 29 12:44:36 UTC 2016


Hi Roland,

the only issue with CompileOnly I'm aware of is:
https://bugs.openjdk.java.net/browse/JDK-8071652

Maybe Nils knows more but he's currently on vacation.

Have you checked this with -XX:CompileCommand=compileonly ?

Best regards,
Tobias

On 29.06.2016 14:19, Roland Westrelin wrote:
> 
> With the testcase below, executed with latest hs-comp with:
> 
> java -XX:CompileOnly=TestCompileCommand::m1 -XX:CompileOnly=TestCompileCommand::m2 -XX:CompileCommand=quiet -XX:-BackgroundCompilation -XX:+PrintCompilation -XX:+PrintInlining -XX:-TieredCompilation TestCompileCommand
> 
> I get the following output:
> 
>     170    1    b        TestCompileCommand::m1 (4 bytes)
>                             @ 0   TestCompileCommand::m1_notinlined (1 bytes)   not compilable (disabled)
>     170    2    b        TestCompileCommand::m2 (8 bytes)
>                             @ 4   TestCompileCommand::m2_notinlined (1 bytes)   inline (hot)
> 
> Either both m1_notinlined & m2_notinlined should be inlined or neither
> should be. Is this a known issue?
> 
> Roland.
> 
> 
> public class TestCompileCommand {
> 
>     static void m1_notinlined() {
>     }
> 
>     static void m1() {
>         m1_notinlined();
>     }
> 
>     static void m2_notinlined() {
>     }
> 
>     static void m2(boolean flag) {
>         if (flag) {
>             m2_notinlined();
>         }
>     }
> 
>     static public void main(String[] args) {
>         for (int i = 0; i < 20000; i++) {
>             m1_notinlined();
>             m1_notinlined();
>             m1();
>             m2((i%2) == 0);
>         }
>     }
> }
> 


More information about the hotspot-compiler-dev mailing list