Unsafe.storeFence produces a floating fence

Andrew Haley aph at redhat.com
Fri Nov 18 18:16:08 UTC 2016


On 18/11/16 17:53, Gilles Duboscq wrote:

> From what i see, GraphBuilderContext.add already takes care of
> adding the node to the control-flow.

> If you want to see how that happens, follow this call chain:
> 
> GraphBuilderContext.add -> BytecodeParser.append -> BytecodeParser.updateLastInstruction
> 
> So i think the MembarNode is correctly added in the control-flow at
> the point where you expect it.
> I don't think that the store floats anywhere, it's fixed.

Yeah, I thought it did, but then this...

> Looking at the code of actor1 i think what happens is rather the
> allocation of the Shell object and the initialization of x that
> moves down to the end of actor1 because of escape analysis.

OK, got that.  Thanks everybody.

Andrew.


More information about the graal-dev mailing list