Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8265518

C1: Intrinsic support for Preconditions.checkIndex

    XMLWordPrintable

Details

    • b02

    Description

      The JDK codebase re-created many variants of checkIndex(`grep -I -r 'cehckIndex' jdk/`). A notable variant is java.nio.Buffer.checkIndex, which is annotated with @IntrinsicCandidate and it only has a corresponding C1 intrinsic version.

      There is an utility method `jdk.internal.util.Preconditions.checkIndex`(wrapped by java.lang.Objects.checkIndex) that behaves the same as these variants of checkIndex, we can replace these variants with Objects.checkIndex, it would significantly reduce duplicated code and enjoys performance improvement because Preconditions.checkIndex is an @IntrinsicCandidate and it has a corresponding intrinsic method in HotSpot.

      But, the problem is currently HotSpot only implements the C2 intrinsic version of Preconditions.checkIndex. To reuse it globally in JDK codebase, I think we can firstly implement its C1 counterpart. There are also a few kinds of stuff we can do later:

      1. Replace all variants of checkIndex by Objects.checkIndex in the whole JDK codebase.
      2. Remove Buffer.checkIndex and obsolete/deprecate InlineNIOCheckIndex flag

      Attachments

        Issue Links

          Activity

            People

              yyang Yi Yang
              yyang Yi Yang
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: