On Fri, 13 Mar 2026 14:55:04 GMT, Tobias Hartmann <[email protected]> wrote:

>> This PR fixes an IR mismatch in `TestLWorld.java` for `test85` and `test86`. 
>> When merging jdk-26+17, there were some changes to 
>> `G1BarrierSetC2::estimated_barrier_size` due to 
>> [JDK-8342382](https://bugs.openjdk.org/browse/JDK-8342382). The barrier size 
>> is significantly reduced, opening the door to more unrolling as per 
>> `IdealLoopTree::policy_unroll`. In the specific case of `test85` and 
>> `test86`, this leads to unrolling where there previously was none and 
>> splitting a `CountedLoop` into a main and post loop. This breaks the IR 
>> rules because they rely on exact nodes count.
>> 
>> For `test86`, we can trivially replace `COUNTED_LOOP` by `COUNTED_LOOP_MAIN` 
>> to avoid counting the loop twice.
>> 
>> For `test85`, we also have a check on `LOAD_UNKNOWN_INLINE`, which ends up 
>> being appearing four times in the default setup (because of unrolling and 
>> pre/main/post). This is a bit annoying. It seems the best solution in this 
>> case is to check the IR right before the pre/main/post, that is at 
>> `PHASEIDEALLOOP2`.
>> 
>> ### Testing
>> - [x] GitHub Actions
>> - [x] tier1-4 for this specific test, plus some internal testing
>> 
>> Thank you for reviewing!
>
> Looks good to me too.

Thank you for reviewing @TobiHartmann @chhagedorn!

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

PR Comment: https://git.openjdk.org/valhalla/pull/2219#issuecomment-4065672627

Reply via email to