-
Bug
-
Resolution: Unresolved
-
P4
-
11, 17, 21, 22
The Compiler Control added by https://openjdk.org/jeps/165 improved the way to control the C1 and C2 JVM compilers. It needs to be extended to handle JVMCI compilers such as Graal.
In the current state, a number of the tests added by JEP 165 test fail when libgraal is enabled. For example, compiler/compilercontrol/directives/ExcludeTest.java fails with:
Checking expected compilation state: {
method: public void compiler.compilercontrol.share.pool.sub.Klass.method(int,java.lang.String[],java.lang.Integer,byte[],double[][])
compile [Optional.empty, Optional.empty]
force_inline [Optional.empty, Optional.empty]
dont_inline [Optional.empty, Optional.empty]
log Optional.empty
print_assembly Optional.empty
print_inline Optional.empty
}
Checking expected compilation state: {
method: public void compiler.compilercontrol.share.pool.sub.Klass.method()
compile [Optional.empty, Optional[false]]
force_inline [Optional.empty, Optional[false]]
dont_inline [Optional.empty, Optional[true]]
log Optional.empty
print_assembly Optional.empty
print_inline Optional.empty
}
];
stderr: [Exception in thread "main" java.lang.RuntimeException: FAILED: method public void compiler.compilercontrol.share.pool.sub.Klass.method() compilable: true, but should: false on required level: 4: expected true to equal false
at jdk.test.lib.Asserts.fail(Asserts.java:594)
at jdk.test.lib.Asserts.assertEquals(Asserts.java:205)
at jdk.test.lib.Asserts.assertEQ(Asserts.java:178)
at compiler.compilercontrol.share.actions.CompileAction.checkCompilation(CompileAction.java:90)
at compiler.compilercontrol.share.actions.CompileAction.checkCompiled(CompileAction.java:74)
at compiler.compilercontrol.share.actions.BaseAction.lambda$check$2(BaseAction.java:143)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1593)
at compiler.compilercontrol.share.actions.BaseAction.check(BaseAction.java:141)
at compiler.compilercontrol.share.actions.BaseAction.communicate(BaseAction.java:100)
at compiler.compilercontrol.share.actions.BaseAction.main(BaseAction.java:59)
]
In the current state, a number of the tests added by JEP 165 test fail when libgraal is enabled. For example, compiler/compilercontrol/directives/ExcludeTest.java fails with:
Checking expected compilation state: {
method: public void compiler.compilercontrol.share.pool.sub.Klass.method(int,java.lang.String[],java.lang.Integer,byte[],double[][])
compile [Optional.empty, Optional.empty]
force_inline [Optional.empty, Optional.empty]
dont_inline [Optional.empty, Optional.empty]
log Optional.empty
print_assembly Optional.empty
print_inline Optional.empty
}
Checking expected compilation state: {
method: public void compiler.compilercontrol.share.pool.sub.Klass.method()
compile [Optional.empty, Optional[false]]
force_inline [Optional.empty, Optional[false]]
dont_inline [Optional.empty, Optional[true]]
log Optional.empty
print_assembly Optional.empty
print_inline Optional.empty
}
];
stderr: [Exception in thread "main" java.lang.RuntimeException: FAILED: method public void compiler.compilercontrol.share.pool.sub.Klass.method() compilable: true, but should: false on required level: 4: expected true to equal false
at jdk.test.lib.Asserts.fail(Asserts.java:594)
at jdk.test.lib.Asserts.assertEquals(Asserts.java:205)
at jdk.test.lib.Asserts.assertEQ(Asserts.java:178)
at compiler.compilercontrol.share.actions.CompileAction.checkCompilation(CompileAction.java:90)
at compiler.compilercontrol.share.actions.CompileAction.checkCompiled(CompileAction.java:74)
at compiler.compilercontrol.share.actions.BaseAction.lambda$check$2(BaseAction.java:143)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1593)
at compiler.compilercontrol.share.actions.BaseAction.check(BaseAction.java:141)
at compiler.compilercontrol.share.actions.BaseAction.communicate(BaseAction.java:100)
at compiler.compilercontrol.share.actions.BaseAction.main(BaseAction.java:59)
]