inconsistent inlining behavior with CompileOnly

Pavel Punegov pavel.punegov at oracle.com
Wed Jun 29 16:07:49 UTC 2016


Hi Roland,

I think CompilerControl could help you if you want to compile only m1 and m2 but disable inlining for other methods.

You could use similar directives file:
  1 [{
  2     match: ["Test::m1", "Test::m2"],
  3     inline: ["-Test::m1_notinlined", "-Test::m2_notinlined"]
  4 },
  5 {
  6     match: "*.*",
  7     c1: {
  8         Exclude: true,
  9     },
 10     c2: {
 11         Exclude: true,
 12     }
 13 }]

$ /Users/ppunegov/Temp/repr/jdk/bin/java -XX:+UnlockDiagnosticVMOptions -XX:CompilerDirectivesFile=directives.json -XX:-BackgroundCompilation -XX:+PrintCompilation -XX:+PrintInlining -XX:-TieredCompilation Test
2 compiler directives added

### Excluding compile: static Test::m1_notinlined
made not compilable on levels 0 1 2 3 4  Test::m1_notinlined (1 bytes)   excluded by CompileCommand
    113    1    b        Test::m1 (4 bytes)
                            @ 0   Test::m1_notinlined (1 bytes)   not compilable (disabled)
    114    2    b        Test::m2 (8 bytes)
                            @ 4   Test::m2_notinlined (1 bytes)   disallowed by CompileCommand
### Excluding compile: static Test::main
made not compilable on levels 0 1 2 3 4  Test::main (39 bytes)   excluded by CompileCommand
### Excluding compile: static Test::m2_notinlined
made not compilable on levels 0 1 2 3 4  Test::m2_notinlined (1 bytes)   excluded by CompileCommand



— Pavel.

> On 29 Jun 2016, at 17:12, Roland Westrelin <rwestrel at redhat.com> wrote:
> 
> Hi Vladimir,
> 
>> For "exclude" command such behavior is expected. Disabling compilation
>> of a method is used to workaround compiler bugs and it doesn't matter
>> whether the problematic method is the root of a compilation or being
>> inlined - compiler shouldn't try to compile the method at all.
> 
> That makes sense indeed.
> 
> Roland.
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160629/48d5d6aa/attachment-0001.html>


More information about the hotspot-compiler-dev mailing list