RFR: 8352681: C2 compilation hits asserts "must set the initial type just once" [v2]
duke
duke at openjdk.org
Tue Apr 8 17:50:11 UTC 2025
On Mon, 7 Apr 2025 16:54:47 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.
>
> Cesar Soares Lucas has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix typo & test
@JohnTortugo
Your change (at version fa6b678e8aef29f1be9f6f2e7c368bd24e73239a) is now ready to be sponsored by a Committer.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/24471#issuecomment-2787222740
More information about the hotspot-compiler-dev
mailing list