RFR: 8311932: Suboptimal compiled code of nested loop over memory segment

Roland Westrelin roland at openjdk.org
Tue Nov 14 09:08:41 UTC 2023


To enable the elimination of long range checks, the loop that contains
the range checks is transformed into a loop nest and the range checks
are changed to operate on int values computed before the loop is
entered. This causes extra overhead out of loop and once, the range
checks are eliminated, can only pay off if the loop is executed for
long enough. This change disable the transformation if the trip count
computed from profile data is too low. This came up with a
MemorySegment API micro benchmarks and improves performance
significantly.

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

Commit messages:
 - disable loop nest with small number of iterations

Changes: https://git.openjdk.org/jdk/pull/16650/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16650&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8311932
  Stats: 79 lines in 2 files changed: 76 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/16650.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16650/head:pull/16650

PR: https://git.openjdk.org/jdk/pull/16650


More information about the hotspot-compiler-dev mailing list