[lworld] RFR: 8336003: [lworld] TestLWorld::test151 triggers "Should have been buffered" assert [v2]

Quan Anh Mai qamai at openjdk.org
Mon Jun 16 17:45:56 UTC 2025


> Hi,
> 
> The issue here is that the IGVN cannot deduce that the `IsBuffered` input is a constant 1. This is because after the `InlineTypeNode` is pushed down through a `Phi` cluster, the `IsBuffered` input is a `Phi` cluster with loop phis, which makes it difficult for the IGVN to see through. A solution is to do another round of CCP after loop opts, but it is rather a big hammer. In this PR, I propose to make it possible for a `PhiNode` to look through its `Phi` inputs to discover the unique non-phi input of a `Phi` cluster. The test still fails but it seems more like an expected behaviour rather than an issue this time, I have modified the test a little bit for it to pass.
> 
> Please take a look and share your thoughts, thanks very much.

Quan Anh Mai has updated the pull request incrementally with one additional commit since the last revision:

  fix dead loop

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

Changes:
  - all: https://git.openjdk.org/valhalla/pull/1489/files
  - new: https://git.openjdk.org/valhalla/pull/1489/files/422301be..67f5c154

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1489&range=01
 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1489&range=00-01

  Stats: 3 lines in 1 file changed: 0 ins; 1 del; 2 mod
  Patch: https://git.openjdk.org/valhalla/pull/1489.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1489/head:pull/1489

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


More information about the valhalla-dev mailing list