hg: ppc-aix-port/jdk7u/hotspot: opto / regalloc: Fix problem with rematerialization

goetz.lindenmaier at sap.com goetz.lindenmaier at sap.com
Wed Dec 12 07:58:13 PST 2012


Changeset: 79eae7bb8433
Author:    Goetz
Date:      2012-12-12 16:56 +0100
URL:       http://hg.openjdk.java.net/ppc-aix-port/jdk7u/hotspot/rev/79eae7bb8433

opto / regalloc: Fix problem with rematerialization

On PPC, castX2P is rematerialized just where the live range
of another rematerialized node using the same def lives.
This causes invalid register dependencies (while the code
happens to be correct).  In the end the VM aborts with
assert(!_reg_node[reg_lo] || edge_from_to(_reg_node[reg_lo],def), msg);

Seen in jvm2008: -Xcomp -Xbatch -Djava.io.tmpdir=./tmp -jar SPECjvm2008.jar
-ikv -wt 30 -it 60 -bt 2 --base xml.validation
in sun.awt.X11.XAtom::getAtomListProperty.

Fixed by aborting and retrying the register allocation cycle.
We had to increase the number of register allocation cycles, as
as consequence we got spill split recycle failures.

This fix is suboptimal as it increases the runtime of
the register allocation (only on PPC), but we saw similar
problems in various situations.  Therefor excluding castX2P
from rematerialization not only worsens register allocation,
but is not sufficient, either.

! src/share/vm/opto/chaitin.cpp
! src/share/vm/opto/reg_split.cpp



More information about the ppc-aix-port-dev mailing list