On Tue, 17 Nov 2020 08:33:20 GMT, Roland Westrelin <rol...@openjdk.org> wrote:
>> This change add 3 new methods in Objects: >> >> public static long checkIndex(long index, long length) >> public static long checkFromToIndex(long fromIndex, long toIndex, long >> length) >> public static long checkFromIndexSize(long fromIndex, long size, long length) >> >> This mirrors the int utility methods that were added by JDK-8135248 >> with the same motivations. >> >> As is the case with the int checkIndex(), the long checkIndex() method >> is JIT compiled as an intrinsic. It allows the JIT to compile >> checkIndex to an unsigned comparison and properly recognize it as >> a range check that then becomes a candidate for the existing range check >> optimizations. This has proven to be important for panama's >> MemorySegment API and a prototype of this change (with some extra c2 >> improvements) showed that panama micro benchmark results improve >> significantly. >> >> This change includes: >> >> - the API change >> - the C2 intrinsic >> - tests for the API and the C2 intrinsic >> >> This is a joint work with Paul who reviewed and reworked the API change >> and filled the CSR. > > Roland Westrelin has updated the pull request with a new target base due to a > merge or a rebase. The pull request now contains 27 commits: > > - Merge branch 'master' of https://git.openjdk.java.net/jdk into JDK-8255150 > - Merge branch 'master' into JDK-8255150 > - Merge branch 'master' into JDK-8255150 > - Merge branch 'master' of https://git.openjdk.java.net/jdk into JDK-8255150 > - exclude compiler test when run with -Xcomp > - CastLL should define carry_depency > - intrinsic comments > - Jorn's comments > - Update headers and add intrinsic to Graal test ignore list > - move compiler test and add bug to test > - ... and 17 more: > https://git.openjdk.java.net/jdk/compare/4553fa0b...feb32943 Marked as reviewed by jvernee (Committer). ------------- PR: https://git.openjdk.java.net/jdk/pull/1003