[lworld] RFR: 8306986: [lworld] C2 compilation fails with assert "Should have been buffered"

Tobias Hartmann thartmann at openjdk.org
Thu Apr 27 15:53:23 UTC 2023


An assert failed because C2 was not able to prove that an inline type was always buffered. I replaced the hacky `InlineTypeNode::_is_buffered` field by a proper node input to propagate the allocation state through C2 IR. We need it in addition to the oop input because for a `null` the oop input is `null` but the node should still be treated as buffered. Reviving my prototype test generator, I found some tests that trigger two too strong asserts. I added the tests and removed the asserts.

Best regards,
Tobias

-------------

Commit messages:
 - 8306986: [lworld] C2 compilation fails with assert "Should have been buffered"

Changes: https://git.openjdk.org/valhalla/pull/844/files
 Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=844&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8306986
  Stats: 142 lines in 7 files changed: 72 ins; 28 del; 42 mod
  Patch: https://git.openjdk.org/valhalla/pull/844.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/844/head:pull/844

PR: https://git.openjdk.org/valhalla/pull/844



More information about the valhalla-dev mailing list