[lworld] RFR: 8274972: [lworld] TestLWorld.test151() fails with IR verification errors
Roland Westrelin
roland at openjdk.java.net
Thu Oct 14 09:04:23 UTC 2021
The test failure is caused by this check:
bool LateInlineVirtualCallGenerator::do_late_inline_check(Compile* C, JVMState* jvms) {
// Method handle linker case is handled in CallDynamicJavaNode::Ideal().
// Unless inlining is performed, _override_symbolic_info bit will be set in DirectCallGenerator::generate().
// Implicit receiver null checks introduce problems when exception states are combined.
Node* receiver = jvms->map()->argument(jvms, 0);
const Type* recv_type = C->initial_gvn()->type(receiver);
if (recv_type->maybe_null()) {
return false;
}
That code came with the recent merge. receiver should be not null
(it's a InlineTypePtrNode) but it's not. The InlineTypePtrNode is
created when pushed down through Phis. The fix I propose is to set the
type of the phi that's the Oop input to InlineTypeBase to non null
when it's created if it's observed that all InlineTypeBase nodes
encountered when following Phi inputs are non null.
-------------
Commit messages:
- fix
Changes: https://git.openjdk.java.net/valhalla/pull/563/files
Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=563&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8274972
Stats: 19 lines in 4 files changed: 10 ins; 0 del; 9 mod
Patch: https://git.openjdk.java.net/valhalla/pull/563.diff
Fetch: git fetch https://git.openjdk.java.net/valhalla pull/563/head:pull/563
PR: https://git.openjdk.java.net/valhalla/pull/563
More information about the valhalla-dev
mailing list