# HG changeset patch # User Gilles Duboscq # Date 1389971585 -3600 # Node ID 7cf35c337fcfb347f00d599fcab0ad58b5624dd7 # Parent 45fcb3ec0d43be1c9de73ff7fd24420ebf362c27 Keep speculation and debug id when canonicalizing DynamicDeoptimizeNode diff -r 45fcb3ec0d43 -r 7cf35c337fcf graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DynamicDeoptimizeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DynamicDeoptimizeNode.java Fri Jan 17 16:13:02 2014 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DynamicDeoptimizeNode.java Fri Jan 17 16:13:05 2014 +0100 @@ -60,9 +60,12 @@ @Override public Node canonical(CanonicalizerTool tool) { - if (actionAndReason.isConstant()) { + if (actionAndReason.isConstant() && speculation.isConstant()) { Constant constant = actionAndReason.asConstant(); - DeoptimizeNode newDeopt = graph().add(new DeoptimizeNode(tool.getMetaAccess().decodeDeoptAction(constant), tool.getMetaAccess().decodeDeoptReason(constant))); + Constant speculationConstant = speculation.asConstant(); + DeoptimizeNode newDeopt = graph().add( + new DeoptimizeNode(tool.getMetaAccess().decodeDeoptAction(constant), tool.getMetaAccess().decodeDeoptReason(constant), tool.getMetaAccess().decodeDebugId(constant), + speculationConstant)); newDeopt.setDeoptimizationState(getDeoptimizationState()); return newDeopt; }