Shenandoah WB fastpath and optimizations

Roland Westrelin rwestrel at redhat.com
Tue Dec 19 14:28:41 UTC 2017


> Could be, and it was my base theory at some point. But I'd expect more loads to manifest more
> reliably. As such, we seem to be very well within the L1-load budget to account for WB loads.
>
> In fact, I wanted to ask you what would it take to teach C2 to emit C1-style check, e.g. instead of:
>
>     movzbl 0x3d8(%rTLS), %rScratch  ; read evac-in-progress
>     test %rScratch, %rScratch
>     jne EVAC-ENABLED-SLOW-PATH
>     mov -0x8(%rObj), %rObj          ; read barrier
>
> ...do:
>
>     cmpb 0x3d8(%TLS), 0             ; read evac-in-progress
>     jne EVAC-ENABLED-SLOW-PATH
>     mov -0x8(%rObj), %rObj          ; read barrier
>
> ...thus freeing up the register?

I will look into that. Running with an empty slow path could be an
interesting experiment too.

Roland.


More information about the shenandoah-dev mailing list