> Hi, > > Flat accesses prevent scalar replacement because they are mismatched > accesses. It is also generally not possible to look through them, because the > payload may contain an oop in the form of raw bits. As a result, this PR adds > `LoadFlatNode` and `StoreFlatNode`, which act as high-level abstractions for > atomic accesses on flat fields. When it is determined that there is no racing > access on the flat field (e.g. because the holder object does not escape), > these flat access nodes can be expanded into multiple accesses to each > flattened fields, otherwise, they will be expanded into a sequence of > inferring a payload and accessing memory with that payload. > > I also fix an issue with deoptimization reallocation where we miss assigning > the null marker of elements in a nullable flat array. > > Please take a look and leave your reviews, thanks a lot.
Quan Anh Mai has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 13 commits: - Merge branch 'lworld' into flatfield - grammar errors - Remove flat accesses from sfn_worklist - revert redundant changes - revert redundant changes - Several fixes - fix gc barrier - Merge branch 'lworld' into flatfield - fix merge, assert GC barriers - Merge branch 'lworld' into flatfield - ... and 3 more: https://git.openjdk.org/valhalla/compare/abc1d5b2...9650fbba ------------- Changes: https://git.openjdk.org/valhalla/pull/1518/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1518&range=07 Stats: 975 lines in 16 files changed: 764 ins; 188 del; 23 mod Patch: https://git.openjdk.org/valhalla/pull/1518.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1518/head:pull/1518 PR: https://git.openjdk.org/valhalla/pull/1518
