RFR: 8256073: Improve vector rematerialization support [v2]

Vladimir Ivanov vlivanov at openjdk.java.net
Fri Nov 20 16:29:21 UTC 2020


> Having #1131, #1132, and #1134 in place, the only missing piece left to have vector rematerialization fully working is support of non-contiguous vector values in vector rematerialization logic. This patch covers that.
> 
> Current version makes the assumption that vector values are contiguously laid in memory. It's the case for on-stack locations, but for in-register values it's not the case (at least, on x86). Rewritten version doesn't make such assumption for in-register case anymore and processes every vector element independently.
> 
> (Along the way, the refactoring fixes a bug when handling a corner case: the case when a vector instance is scalarized by EA and the primitive array field (VectorPayload.payload) has a constant value (NULL) is erroneously treated as requiring custom rematerialization and it hits an assert.)
> 
> Testing (with other relevant patches):
> - [x] jdk/incubator/vector w/ -XX:+DeoptimizeALot and -XX:UseAVX={3,2,1,0} on AVX512-capable hardware
> - [x] hs-precheckin-comp, hs-tier1, hs-tier2

Vladimir Ivanov 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 three additional commits since the last revision:

 - Address review comments.
 - Merge branch 'master' into 8256073.rematerialization
 - Improve vector rematerialization support

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/1136/files
  - new: https://git.openjdk.java.net/jdk/pull/1136/files/df58c86c..0f751960

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1136&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1136&range=00-01

  Stats: 31298 lines in 688 files changed: 18523 ins; 8201 del; 4574 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1136.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1136/head:pull/1136

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


More information about the hotspot-compiler-dev mailing list