RFR: 8256730: Code that uses Object.checkIndex() range checks doesn't optimize well [v4]

Roland Westrelin roland at openjdk.java.net
Fri Dec 4 14:11:38 UTC 2020


> This was reported by Paul with the vector API. There are 2 issues:
> 
> - CastII nodes (added by Objects.checkIndex()) gets in the way of the
>   pattern matching performed by range check elimination
> 
> - By transforming (CastII (AddI x y)) into (AddI (CastII x) (CastII y))
>   some CastII can be eliminated which improves address computation code.

Roland Westrelin has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:

 - drop extra include, add bugid to test case
 - Merge branch 'master' into JDK-8256730
 - CastII pushed thru chain of AddIs
 - build fix
 - Merge branch 'master' into JDK-8256730
 - step over CastII in range checks & push CastII thru add

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1342/files
  - new: https://git.openjdk.java.net/jdk/pull/1342/files/faf980ab..f55172d7

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1342&range=03
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1342&range=02-03

  Stats: 109278 lines in 1270 files changed: 92144 ins; 7310 del; 9824 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1342.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1342/head:pull/1342

PR: https://git.openjdk.java.net/jdk/pull/1342


More information about the hotspot-compiler-dev mailing list