RFR: 8357531: The `SegmentBulkOperations::fill` method can be improved using overlaps [v6]
Per Minborg
pminborg at openjdk.org
Tue May 27 12:03:41 UTC 2025
> This PR builds on a concept John Rose told me about some time ago. Instead of combining memory operations of various sizes, a single large and skewed memory operation can be made to clean up the tail of remaining bytes.
>
> This has the effect of simplifying and shortening the code. The number of branches to evaluate is reduced.
>
> It should be noted that the performance of the fill operation affects the allocation of new segments (as they are zeroed out before being returned to the client code).
>
> This PR passes tier1, tier2, and tier3 on multiple platforms.
Per Minborg 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 seven additional commits since the last revision:
- Merge branch 'master' into fill-overlap
- Update test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java
Co-authored-by: Andrey Turbanov <turbanoff at gmail.com>
- Update benchmark to reflect new fill method
- Simplify
- Add case for long operations and break out methods
- Correct typo in comment
- Simplify the fill method
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/25383/files
- new: https://git.openjdk.org/jdk/pull/25383/files/5c878bbd..d0cd7bbb
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=25383&range=05
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=25383&range=04-05
Stats: 57007 lines in 827 files changed: 38176 ins; 13844 del; 4987 mod
Patch: https://git.openjdk.org/jdk/pull/25383.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/25383/head:pull/25383
PR: https://git.openjdk.org/jdk/pull/25383
More information about the core-libs-dev
mailing list