RFR: 8292301: [REDO v2] C2 crash when allocating array of size too large [v4]

Roland Westrelin roland at openjdk.org
Fri Sep 23 07:33:35 UTC 2022


On Mon, 19 Sep 2022 22:16:38 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> Roland Westrelin has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits:
>> 
>>  - comments
>>  - Merge branch 'master' into JDK-8292301
>>  - Update src/hotspot/share/opto/phaseX.cpp
>>    
>>    Co-authored-by: Tobias Hartmann <tobias.hartmann at oracle.com>
>>  - undo needless change
>>  - dos->unix test file
>>  - move tests
>>  - test fix
>>  - fix
>>  - test
>>  - test for 8288184
>>  - ... and 2 more: https://git.openjdk.org/jdk/compare/8e22f2bb...9d92011a
>
> src/hotspot/share/opto/macro.cpp line 1384:
> 
>> 1382:   // that the call has the expected number of CatchProj nodes (in case the allocation always fails and the fallthrough
>> 1383:   // path dies).
>> 1384:   if (valid_length_test != NULL) {
> 
> Should we check for TOP too?

valid_length_test is NULL for AllocateNode and not NULL for AllocateArrayNode. PhaseMacroExpand::expand_allocate_common() is shared by the 2 node types and that test is used to differentiate the two. I don't think top is possible here. I also think for simplicity we want to always move the ValidLength input from the AllocateArrayNode to the call.

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

PR: https://git.openjdk.org/jdk/pull/10038


More information about the hotspot-compiler-dev mailing list