[lworld] RFR: 8320296: [lworld] Fix profiling at array store subtype checks in Valhalla

Roland Westrelin roland at openjdk.org
Thu Dec 14 08:51:24 UTC 2023


The issue is that the way valhalla collects profile data at `aastore` is different from what mainline does. It used to not matter because mainline didn't use part of the data it collects but that has changed. In mainline, no profile data is collected for `aaload` and every `aastore` has a `ReceiverTypeData` entry. In valhalla, `aaload` and `aastore` both make use of a `ArrayLoadStoreData` that's unrelated to `ReceiverTypeData`. What I propose to fix this is that `aaload` and `aastore` each have their own profile data structure: `ArrayLoadData` and `ArrayStoreData` . `ArrayLoadData` is identical to `ArrayLoadStoreData`  so there's no change to profile collection code for `aaload`. `ArrayStoreData` is a subclass of `ReceiverTypeData` so profile data collection has to be adjusted. The reason for not having the same data structure for `aaload` and `aastore` is that it made fixing the profile collection code easier and increasing the number of types collected by  `ReceiverTypeData` (if we
  ever want to do that) would not cause a lot of unused data to be collected at `aaload`.

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

Commit messages:
 - another jvmci fix
 - jvmci fix
 - remove problem listed test
 - more
 - aarch64 fix
 - x86 fix

Changes: https://git.openjdk.org/valhalla/pull/962/files
 Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=962&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8320296
  Stats: 389 lines in 19 files changed: 252 ins; 19 del; 118 mod
  Patch: https://git.openjdk.org/valhalla/pull/962.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/962/head:pull/962

PR: https://git.openjdk.org/valhalla/pull/962



More information about the valhalla-dev mailing list