RFR(XS) 8047383: SIGBUS in C2 compiled method weblogic.wsee.jaxws.framework.jaxrpc.EnvironmentFactory$SimulatedWsdlDefinitions.<init>

Vladimir Kozlov 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/
> Thanks,
> igor

More information about the hotspot-compiler-dev mailing list