[lworld] RFR: 8301664: [lworld] Inconsistent CastPP type leads to infinite loop in PhaseIterGVN::optimize [v2]

Tobias Hartmann thartmann at openjdk.org
Tue Feb 7 14:55:02 UTC 2023


> Cloning of CastPPs in `PhaseIdealLoop::flatten_array_element_type_check` does not update the bottom type of the CastPP, leading to a mismatch of `type()` and `adr_type()` of a `LoadNKlass` -> `AddP` -> `CastPP` user. As a result, the node is re-added to the IGVN worklist infinitely, assuming that type of the AddP will be updated:
> https://github.com/openjdk/valhalla/blob/256f488b64846e4af2bfa90d436139bda8d0e7aa/src/hotspot/share/opto/memnode.cpp#L372-L374
> 
> Best regards,
> Tobias

Tobias Hartmann has updated the pull request incrementally with one additional commit since the last revision:

  Better naming

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

Changes:
  - all: https://git.openjdk.org/valhalla/pull/822/files
  - new: https://git.openjdk.org/valhalla/pull/822/files/441f8ec0..7f18e3fd

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

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

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



More information about the valhalla-dev mailing list