RFR: 8271202: C1: assert(false) failed: live_in set of first block must be empty [v2]
Igor Veresov
iveresov at openjdk.java.net
Thu Dec 23 19:28:15 UTC 2021
On Thu, 23 Dec 2021 11:52:57 GMT, Yi Yang <yyang at openjdk.org> wrote:
> 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
To find it you basically need another pass. I don't want to introduce another pass just to find an extremely rare situation. Piggybacking on the LIR generation pass is the most cache-friendly place I can think of. In fact, there is already a related bailout in `move_to_phi()`.
I also don't think that this is necessarily even fixable. We artificially stretch the local liveness and that with conjunction with irreducible loops can create unmergable states. I think bailing out is appropriate. It is a very rare case.
-------------
PR: https://git.openjdk.java.net/jdk/pull/6683
More information about the hotspot-compiler-dev
mailing list