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