RFR: 8372285: G1: Micro-optimize x86 barrier code [v4]
Albert Mingkun Yang
ayang at openjdk.org
Fri Nov 21 18:08:01 UTC 2025
On Fri, 21 Nov 2025 16:09:17 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> We know from [JDK-8372284](https://bugs.openjdk.org/browse/JDK-8372284) that G1 C2 stubs can take ~10% of total instructions. So minor optimizations in hand-written assembly pay off for code density. This PR does a little x86-specific polishing: `testptr` where possible, short forward branches where possible. I rewired some code to make it abundantly clear the branches in question are short. It also makes clear that lots of the affected methods are essentially fall-through.
>>
>> The patch is deliberately on simpler side, so we can backport it to 25u, if need arises.
>>
>> Additional testing:
>> - [x] Linux x86_64 server fastdebug, `tier1`
>> - [ ] Linux x86_64 server fastdebug, `all`
>
> Aleksey Shipilev 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 10 additional commits since the last revision:
>
> - Adjust label name
> - Merge branch 'master' into JDK-8372285-g1-barrier-micro
> - Make some backward branches explicitly short
> - Comment
> - Shorten a few more branches
> - Also reflow generate_pre_barrier_slow_path, so it is obvious the branches are short
> - More touchups
> - Also optimize queue insertion
> - Touchups
> - WIP
Marked as reviewed by ayang (Reviewer).
-------------
PR Review: https://git.openjdk.org/jdk/pull/28446#pullrequestreview-3493844075
More information about the hotspot-gc-dev
mailing list