RFR(XS): 8227384: C2 compilation fails with "graph should be schedulable" when running with -XX:-EliminateLocks

Roland Westrelin rwestrel at redhat.com
Tue Aug 20 11:47:45 UTC 2019


Hi Vladimir,

Thanks for looking at this.

> Expanding Locks before Allocations is good idea. We do eliminate Locks before eliminating 
> Allocations. Will a load after IGVN optimization folds with load generated in 
> PhaseMacroExpand::initialize_object() ?

Can you clarify your concern? Are you talking about a load of the mark
word? Or is it the load of the prototype header in
PhaseMacroExpand::initialize_object()?

> I don't see offset check in is_new_object_mark_load(). How it known it is load from *mark word*?

It checks that the address input of the load is an allocation. If it is
not at offset 0, there is an AddP between the load and the allocation
and is_new_object_mark_load() returns false on this graph shape.

Roland.


More information about the hotspot-compiler-dev mailing list