RFR: 8255614: Shenandoah: Consolidate/streamline runtime LRBs [v2]

Zhengyu Gu zgu at openjdk.java.net
Fri Oct 30 14:12:59 UTC 2020


On Fri, 30 Oct 2020 13:33:11 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

>> Currently, our various LRB entry points are a mess, and quite inefficient too.
>> - We have three entry points, one is checking for null, and calls a non-null version, but that checks for null again
>> - We don't have to check for null at all: it can be subsumed in the cset-check
>> - The LRB resolves forwardee even though has_forwarded_objects() and in_cset() has not been checked
>> - The LRB entry is not inlineable
>> 
>> The proposed change coalesces the 3 entries into one, moves it to shenandoahBarrierSet.inline.hpp and make it inlineable, rearranges the impl to allow cset-check to subsume the NULL-check. As a bonus, it pushes the NULL-check around keep-alive down after the (compile-time) check for weak-ref, so that this path becomes a no-op in the majority of cases.
>
> Roman Kennke has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add null-check

Marked as reviewed by zgu (Reviewer).

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

PR: https://git.openjdk.java.net/jdk/pull/953


More information about the shenandoah-dev mailing list