RFR: 8361702: C2: assert(is_dominator(compute_early_ctrl(limit, limit_ctrl), pre_end)) failed: node pinned on loop exit test? [v4]

Roland Westrelin roland at openjdk.org
Tue Aug 26 09:29:56 UTC 2025


On Mon, 25 Aug 2025 15:12:55 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> Roland Westrelin has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
>> 
>>  - Merge branch 'master' into JDK-8361702
>>  - Update src/hotspot/share/opto/loopopts.cpp
>>    
>>    Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
>>  - Update test/hotspot/jtreg/compiler/rangechecks/TestSunkRangeFromPreLoopRCE3.java
>>    
>>    Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
>>  - Update test/hotspot/jtreg/compiler/rangechecks/TestSunkRangeFromPreLoopRCE2.java
>>    
>>    Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
>>  - Update src/hotspot/share/opto/loopopts.cpp
>>    
>>    Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
>>  - Update test/hotspot/jtreg/compiler/rangechecks/TestSunkRangeFromPreLoopRCE2.java
>>    
>>    Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>
>>  - tests
>>  - fix
>
> test/hotspot/jtreg/compiler/rangechecks/TestSunkRangeFromPreLoopRCE3.java line 28:
> 
>> 26:  * @bug 8361702
>> 27:  * @summary C2: assert(is_dominator(compute_early_ctrl(limit, limit_ctrl), pre_end)) failed: node pinned on loop exit test?
>> 28:  * @requires vm.flavor == "server"
> 
> Would this test fail without this requires? Or could we remove it, in the hopes of catching something else somewhere else?

The `@requires` is there because the test run needs command line options that are c2 specific.

> test/hotspot/jtreg/compiler/rangechecks/TestSunkRangeFromPreLoopRCE3.java line 30:
> 
>> 28:  * @requires vm.flavor == "server"
>> 29:  *
>> 30:  * @run main/othervm -XX:-BackgroundCompilation -XX:LoopUnrollLimit=100 -XX:-UseLoopPredicate -XX:-UseProfiledLoopPredicate TestSunkRangeFromPreLoopRCE3
> 
> Could we have a run without any flags / fewer flags? Just in case it catches something else / related.

Done in new commit.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/26424#discussion_r2300383396
PR Review Comment: https://git.openjdk.org/jdk/pull/26424#discussion_r2300383800


More information about the hotspot-compiler-dev mailing list