On Fri, 2 Oct 2026 02:57:53 GMT, Kangcheng Xu <[email protected]> wrote:

>> Hi,
>> 
>> This PR adds intrinsics to `Preconditions.checkFromToIndex()` and 
>> `Preconditions.checkFromIndexSize()` to produced optimized IR that uses 
>> `RangeCheck` node instead of implicit comparisons. 
>> `Preconditions.checkIndex()` is also refactored (without additional 
>> optimizations) to use the same helper function.
>> 
>> Some common patterns where calling `checkFromToIndex` or 
>> `checkFromIndexSize` in a loop can have range checks in main loop eliminated 
>> completely and, therefore, enables empty loop removal.
>> 
>> IR and correctness tests are included and passing. Additional tests on 
>> `Preconditions.checkIndex()` were also added.
>> 
>> Thanks!
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Kangcheng Xu has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains 48 commits:
> 
>  - Merge branch 'master' into check-index-sub-range
>  - fix type widening, add comments
>  - explicit nullptr check, add type cast, add clarifications in comments
>  - simplify logic by allowing deopt with size == 0
>  - remove left over code
>  - Merge branch 'master' into check-index-sub-range
>  - Merge branch 'master' into check-index-sub-range
>  - fix TestRangeCheck
>  - enable intrinsic control for release builds
>  - fix TestOpaqueConstantBoolNodes
>  - ... and 38 more: https://git.openjdk.org/jdk/compare/01b36384...55f42e15

src/hotspot/share/opto/library_call.cpp line 1346:

> 1344:   assert(bt == T_INT || bt == T_LONG, "");
> 1345: 
> 1346:   if (too_many_traps(Deoptimization::Reason_intrinsic) || 
> too_many_traps(Deoptimization::Reason_range_check)) {

Similar to #33428, you should not invalidate a compilation if the uncommon trap 
will throw an exception anyway.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/31138#discussion_r4310209156

Reply via email to