[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