RFR: 8271202: C1: assert(false) failed: live_in set of first block must be empty
Martin Doerr
mdoerr at openjdk.java.net
Thu Oct 7 11:02:10 UTC 2021
On Wed, 28 Jul 2021 06:57:26 GMT, Yi Yang <yyang at openjdk.org> wrote:
> A local variable(smallinvoc) is defined in B3 and only used in B14
This sounds like a bug. B3 doesn't dominate B14, so B14 can't use the variable. Shouldn't the local slot have been invalidated on the path between the two blocks?
Invalidation of local slots usually occurs when the control flow predecessors have different types or a dead value (indicated by `new_value == NULL` in `BlockBegin::try_merge`).
Maybe it's a case which C1 can't handle. If so, bailing out would be the right choice IMHO.
test/hotspot/jtreg/compiler/c1/ExtendLocalVarLifetime.java line 72:
> 70: }
> 71: }
> 72: }
newline missing
-------------
PR: https://git.openjdk.java.net/jdk/pull/4916
More information about the hotspot-compiler-dev
mailing list