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