[jdk17] RFR: 8269795: C2: Out of bounds array load floats above its range check in loop peeling resulting in SEGV

Tobias Hartmann thartmann at openjdk.java.net
Fri Jul 9 08:26:51 UTC 2021


On Fri, 9 Jul 2021 07:49:43 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:

>> src/hotspot/share/opto/loopTransform.cpp line 524:
>> 
>>> 522:           !loop->is_member(get_loop(get_ctrl(test->in(1))))){
>>> 523:         // Walk loop body looking for instances of this test
>>> 524:         Node* test_cond = test->in(1);
>> 
>> Maybe move this up to line 517 and replace the `test->in(1)->is_Con()` and `get_ctrl(test->in(1))` usages in line 520/522 for better readability.
>
> Unfortunately, that's not possible as `test` could be an `IfProj` with only a control input.

Right, too bad.

>> test/hotspot/jtreg/compiler/loopopts/TestPeelingRemoveDominatedTest.java line 26:
>> 
>>> 24: /*
>>> 25:  * @test
>>> 26:  * @key stress randomness
>> 
>> There is no randomness in the test, right? Or is that referring to the use of `StressGCM`? If so, these keys are missing from other other tests that use this flag.
>
> Yes, it's referring to `StressGCM`. @robcasloz once updated all tests with `StressGCM` to use these keys in [JDK-8253765](https://github.com/openjdk/jdk/commit/05459df0). But some newer tests miss these keys. Should we update them in an RFE to be consistent?

Yes, I think that would be good.

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

PR: https://git.openjdk.java.net/jdk17/pull/235


More information about the hotspot-compiler-dev mailing list