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