RFR(XS) 8047383: SIGBUS in C2 compiled method weblogic.wsee.jaxws.framework.jaxrpc.EnvironmentFactory$SimulatedWsdlDefinitions.<init>
vladimir.kozlov at oracle.com
Wed Oct 22 23:37:22 UTC 2014
You point fix seems correct.
The question is should we do the new check inside
MachNode::rematerialize() instead? Or don't rematerialized such nodes at
MachNode::rematerialize() is called from Node::rematerialize() which is
used in a lot of places in RA (PhaseChaitin). We need to make sure all
those places are safe for MachConstant nodes.
On 10/22/14 3:16 PM, Igor Veresov wrote:
> The problem manifests itself in various instances are constant table base register corruption. The cause is that when we’re rematerializing constant table loads (which are is_Con()) in PhaseAggressiveCoalesce::insert_copies() we are stretching the lrg of the constant table base. If that lrg is a multidef then I think we're in trouble. The fix is not rematerialize constant table loads here. We, however, will rematerialize those when splitting lrgs in split_Rematerialize(), which requires creation of a spill copy for each multidef input. I’d like to also point out that matcher aggressively clones constants (including constant table loads), which puts them close to the use in the majority of cases. So the proposed change has no measurable performance impact, which I verified with performance runs.
> Webrev: http://cr.openjdk.java.net/~iveresov/8047383/webrev.00/
More information about the hotspot-compiler-dev