inconsistent inlining behavior with CompileOnly
Roland Westrelin
rwestrel at redhat.com
Wed Jun 29 12:19:07 UTC 2016
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