Happy path
Aleksey Shipilev
shade at redhat.com
Thu Apr 26 14:02:05 UTC 2018
On 04/26/2018 02:35 PM, Roland Westrelin wrote:
>
>> And coalescing worked before this patch, because we treated the
>> null-checks specially?
>
> Before we had:
>
> null check
> wb
> field store
>
> which was expanded to:
>
> if (evacuation in progress) {
> null check
> rb
> // more stuff
> } else {
> null check
> rb
> }
> field store
>
> and the null check becomes 2 implicit null checks
>
> now we have:
>
> if (heap stable) {
> // nothing
> } else {
> if (evacuation in progress) {
> null check
> rb
> // more stuff
> } else {
> null check
> rb
> }
> }
>
> null check
> field store
>
> 1 null check becomes 3 implicit null checks
>
> Putting the null check in the heap stable path would not allow it to
> become an implicit null check. So it's now in the way when it comes to
> coalescing.
OK, fine.
-Aleksey
More information about the shenandoah-dev
mailing list