RFR: 8355574: Fatal error in abort_verify_int_in_range due to Invalid CastII [v4]
Roland Westrelin
roland at openjdk.org
Tue May 20 08:54:52 UTC 2025
On Sun, 18 May 2025 07:06:41 GMT, Quan Anh Mai <qamai at openjdk.org> wrote:
>> Hi,
>>
>> The issue here is that the `CastLLNode` is created before the actual check that ensures the range of the input. This patch fixes it by moving the creation to the correct place, which is under `inline_block`. I also noticed that the code there seems incorrect and confusing. `ArrayCopyNode::get_partial_inline_vector_lane_count` takes the length of the array, not the size in bytes. If you look into the method it will multiply `const_len` with `type2aelementbytes(bt)` to get the size in bytes of the array. In the runtime test, we compare `length << log2(type2bytes(bt))` with `ArrayOperationPartialInlineSize`. This seems confusing, why don't we just compare `length` with `ArrayOperationPartialInlineSize / type2bytes(bt)`, it also unifies the test with the actual cast.
>>
>> Please take a look and leave your reviews, thanks a lot.
>
> Quan Anh Mai has updated the pull request incrementally with two additional commits since the last revision:
>
> - fix comment
> - fix comment
`CastLL` related change looks good to me. `ArrayCopyNode::get_partial_inline_vector_lane_count()` looks reasonable but let's see what @jatin-bhateja thinks.
src/hotspot/share/opto/arraycopynode.cpp line 772:
> 770:
> 771: // As an optimization, choose the optimal vector size for bounded copy length
> 772: int ArrayCopyNode::get_partial_inline_vector_lane_count(BasicType type, jlong max_len) {
@jatin-bhateja you wrote this code. What do you think of the proposed change?
-------------
PR Review: https://git.openjdk.org/jdk/pull/25284#pullrequestreview-2853320078
PR Review Comment: https://git.openjdk.org/jdk/pull/25284#discussion_r2097400484
More information about the hotspot-compiler-dev
mailing list