[jdk19] RFR: 8289954: C2: Assert failed in PhaseCFG::verify() after JDK-8183390
Tobias Hartmann
thartmann at openjdk.org
Tue Jul 26 10:43:43 UTC 2022
On Tue, 26 Jul 2022 10:03:44 GMT, Pengfei Li <pli at openjdk.org> wrote:
>> Sorry, but seems that the same assertion failure is still happening when running the newly added test case with fastdebug build on linux-riscv64 platform. And I have attached the hs_err and reply files on the JBS issue. Please take another look.
>
> Thanks @RealFYang for the information. I'm still investigating this in jdk 20 but so far I haven't got a clear clue. Just find if I ban `SuperWord::unrolling_analysis()` for normal loops, specifically with below change, that assertion fails again.
>
> diff --git a/src/hotspot/share/opto/superword.cpp b/src/hotspot/share/opto/superword.cpp
> index ef66840628f..997fae367b1 100644
> --- a/src/hotspot/share/opto/superword.cpp
> +++ b/src/hotspot/share/opto/superword.cpp
> @@ -217,6 +217,7 @@ void SuperWord::unrolling_analysis(int &local_loop_unroll_factor) {
> int *ignored_loop_nodes = NEW_RESOURCE_ARRAY(int, ignored_size);
> Node_Stack nstack((int)ignored_size);
> CountedLoopNode *cl = lpt()->_head->as_CountedLoop();
> + if (cl->is_normal_loop()) return;
> Node *cl_exit = cl->loopexit_or_null();
> int rpo_idx = _post_block.length();
>
>
> And I saw [JDK-8275330](https://github.com/openjdk/jdk/pull/6429) by Roland fixed the same assertion failure before. And the test case which causes the failure looks similar with this one - there is an inner dead loop which fails to be optimized away by C2.
>
> Hi @rwestrel , may I ask if you have any ideas or hints about this?
@pfustc, @RealFYang Please file a new bug for the remaining issue. Thanks!
-------------
PR: https://git.openjdk.org/jdk19/pull/130
More information about the hotspot-compiler-dev
mailing list