RFR(XS): 8227384: C2 compilation fails with "graph should be schedulable" when running with -XX:-EliminateLocks
rwestrel at redhat.com
Tue Aug 20 11:47:45 UTC 2019
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
> 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.
More information about the hotspot-compiler-dev