Happy path
Roland Westrelin
rwestrel at redhat.com
Thu Apr 26 12:35:39 UTC 2018
> 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.
Roland.
More information about the shenandoah-dev
mailing list