Integrated: 8255936: "parsing found no loops but there are some" assertion failure with Shenandoah
Roland Westrelin
roland at openjdk.java.net
Wed Nov 18 09:28:04 UTC 2020
On Thu, 5 Nov 2020 08:44:03 GMT, Roland Westrelin <roland at openjdk.org> wrote:
> This is a Shenandoah bug but the proposed fix is in shared code.
>
> In an infinite loop, a barrier is located right after the loop head
> and above the never branch. When the barrier is expanded, control flow
> is added between the loop and the never branch. During loop
> verification the assert fires because it doesn't expect any control
> flow between the never branch and the loop head.
>
> While it would have been nice to fix this Shenandoah issue in
> Shenandoah code, I think the cleaner fix is to preserve the invariant
> that the never branch is always right after the loop head in an
> infinite loop. In the proposed patch, this is achieved by moving all
> uses of the loop head to the never branch when it's constructed.
This pull request has now been integrated.
Changeset: 655bb619
Author: Roland Westrelin <roland at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/655bb619
Stats: 3 lines in 2 files changed: 2 ins; 0 del; 1 mod
8255936: "parsing found no loops but there are some" assertion failure with Shenandoah
Reviewed-by: thartmann, rkennke
-------------
PR: https://git.openjdk.java.net/jdk/pull/1073
More information about the shenandoah-dev
mailing list