# HG changeset patch # User Andreas Woess # Date 1391837913 -3600 # Node ID 77aa8ef31649b0677cf66ef412788e1c73a13070 # Parent d6b340b757a242d629f7d88dfb3ab9d17bc3ed75 Truffle: canonicalize inlined invoke usages during partial evaluation diff -r d6b340b757a2 -r 77aa8ef31649 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Sat Feb 08 06:33:29 2014 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Sat Feb 08 06:38:33 2014 +0100 @@ -208,6 +208,7 @@ if (TraceTruffleExpansion.getValue()) { expansionLogger.preExpand(methodCallTargetNode, inlineGraph); } + List invokeUsages = methodCallTargetNode.invoke().asNode().usages().snapshot(); Map inlined = InliningUtil.inline(methodCallTargetNode.invoke(), inlineGraph, false); if (TraceTruffleExpansion.getValue()) { expansionLogger.postExpand(inlined); @@ -216,7 +217,7 @@ int nodeCountAfter = graph.getNodeCount(); Debug.dump(graph, "After inlining %s %+d (%d)", methodCallTargetNode.targetMethod().toString(), nodeCountAfter - nodeCountBefore, nodeCountAfter); } - canonicalizer.applyIncremental(graph, phaseContext, mark); + canonicalizer.applyIncremental(graph, phaseContext, invokeUsages, mark); changed = true; } }