RFR(S): barrier moved due to null checks needs to always fix memory edges

Aleksey Shipilev shade at redhat.com
Thu Oct 19 08:58:55 UTC 2017


On 10/19/2017 10:24 AM, Roland Westrelin wrote:
> 
> http://cr.openjdk.java.net/~roland/shenandoah/wbatnullcheckfixmem/webrev.00/
> 
> This is a crash Aleksey observed. When a null check dominates a write
> barrier, we move the barrier up so the null check becomes an implicit
> null check. When the write barrier is moved up, memory edges must be
> tweaked. Current code doesn't fix memory edges if the memory input to
> the write barrier doesn't change. That's incorrect because the barrier
> might now dominate some uses that it didn't dominate before.

Can confirm, the crash is gone.

Comments:

 *) This line is commented, and can be removed?

  1973   //ResourceMark rm; // register_new_node makes an array grow

Otherwise looks good.

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list