RFR: 8256073: Improve vector rematerialization support
Vladimir Ivanov
vlivanov at openjdk.java.net
Mon Nov 9 22:09:02 UTC 2020
Having #1131, #1132, #1134, and #1136 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
-------------
Commit messages:
- Improve vector rematerialization support
Changes: https://git.openjdk.java.net/jdk/pull/1136/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1136&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8256073
Stats: 136 lines in 2 files changed: 32 ins; 70 del; 34 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