RFR: 8339694: ciTypeFlow does not correctly handle unresolved constant dynamic of array type [v3]

Tobias Hartmann thartmann at openjdk.org
Tue Oct 15 08:07:13 UTC 2024


On Mon, 14 Oct 2024 19:29:52 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> Tobias Hartmann has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Modified ciTypeFlow::can_trap
>
> src/hotspot/share/ci/ciTypeFlow.cpp line 2220:
> 
>> 2218:     case Bytecodes::_ldc_w:
>> 2219:     case Bytecodes::_ldc2_w:
>> 2220:       return str.is_in_error() || !str.get_constant().is_loaded();
> 
> There is also `con.is_valid()` check in `do_ldc()`. But I do know what memory is referenced in "OutOfMemoryError in the CI while loading a String constant" when it is invalid.

But in that case no exception is installed and we bail out from compilation, right?
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/ci/ciTypeFlow.cpp#L746

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21470#discussion_r1800656778


More information about the hotspot-compiler-dev mailing list