[lworld] Integrated: 8301664: [lworld] Inconsistent CastPP type leads to infinite loop in PhaseIterGVN::optimize
Tobias Hartmann
thartmann at openjdk.org
Tue Feb 7 16:20:36 UTC 2023
On Tue, 7 Feb 2023 14:32:12 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
> 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
This pull request has now been integrated.
Changeset: 2b29a9f9
Author: Tobias Hartmann <thartmann at openjdk.org>
URL: https://git.openjdk.org/valhalla/commit/2b29a9f99db91bc0904f2a85197256b6b623b589
Stats: 7 lines in 2 files changed: 2 ins; 4 del; 1 mod
8301664: [lworld] Inconsistent CastPP type leads to infinite loop in PhaseIterGVN::optimize
-------------
PR: https://git.openjdk.org/valhalla/pull/822
More information about the valhalla-dev
mailing list