Integrated: 8352681: C2 compilation hits asserts "must set the initial type just once"
Cesar Soares Lucas
cslucas at openjdk.org
Wed Apr 9 05:36:39 UTC 2025
On Sun, 6 Apr 2025 04:04:56 GMT, Cesar Soares Lucas <cslucas at openjdk.org> wrote:
> The reason for the error reported is that when RAM tries to reduce a field load through a Phi it ends up calling `step_through_mergemem` with `_delay_transform` set to true and, since `step_through_mergemem` assumes that `_delay_transform` is `false`, it calls `igvn->transform` passing a MergeMem that has been added to the graph long ago.
>
> I didn't opt to make `_delay_transform` false during the RAM transformations because that seemed to be a risky move, nevertheless I'll create an RFE and keep investigating that option.
>
> Also, while working on a test case I found that C2 doesn't remove (at least not before EA steps) the `if (param != param) {...}` and I'm going to investigate that as a separate RFE.
>
> I tested this with JTREG Tier 1-3 on Linux x86_64.
This pull request has now been integrated.
Changeset: b045e3fb
Author: Cesar Soares Lucas <cslucas at openjdk.org>
Committer: Christian Hagedorn <chagedorn at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/b045e3fbd7920465b5b67d43e35db98b935241d5
Stats: 73 lines in 2 files changed: 69 ins; 0 del; 4 mod
8352681: C2 compilation hits asserts "must set the initial type just once"
Reviewed-by: chagedorn, dfenacci
-------------
PR: https://git.openjdk.org/jdk/pull/24471
More information about the hotspot-compiler-dev
mailing list