RFR: 8271202: C1: assert(false) failed: live_in set of first block must be empty [v2]
Yi Yang
yyang at openjdk.java.net
Thu Dec 23 11:58:16 UTC 2021
On Tue, 7 Dec 2021 23:25:03 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:
>> I have written a checker which detects usage of the illegal phi function. In case of the reproducer provided in the JBS bug ("Reduced.java"), it finds the following and bails out:
>>
>> invalidating local 8 because of type mismatch (new_value is NULL)
>> Bailing out because StoreIndexed (id 98) uses illegal phi (id 68)
>>
>> I haven't checked why that node uses the illegal phi. That still seems to be a bug. Maybe there's a better solution to the underlying problem, but I hope my checker is useful to analyze bugs and to make C1 more resilient.
>
> Martin Doerr has updated the pull request incrementally with one additional commit since the last revision:
>
> Add test.
I think we should at least fix/find such illegal use in state merging rather than LIR generation, that's far beyond where problem occurs
src/hotspot/share/c1/c1_Instruction.cpp line 877:
> 875: index, new_value == NULL ? " (new_value is NULL)" : ""));
> 876: // Check if illegal phi gets used.
> 877: SearchUsageClosure search(existing_phi);
should we add something like "FIXME" comment to indicate this is a workaround and we need further investigation to solve it?
-------------
PR: https://git.openjdk.java.net/jdk/pull/6683
More information about the hotspot-compiler-dev
mailing list