Mercurial > hg > truffle
changeset 13678:7cf35c337fcf
Keep speculation and debug id when canonicalizing DynamicDeoptimizeNode
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 17 Jan 2014 16:13:05 +0100 |
parents | 45fcb3ec0d43 |
children | 53977508b27d |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DynamicDeoptimizeNode.java |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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; }