Mercurial > hg > truffle
diff graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java @ 15964:9d7b2134c4ce
less canonicalization during Truffle partial evaluation
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Wed, 28 May 2014 18:45:06 +0200 |
parents | cf51d3ade2fb |
children | 1461d7627707 |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java Wed May 28 18:44:09 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java Wed May 28 18:45:06 2014 +0200 @@ -56,14 +56,7 @@ if (inlineable instanceof InlineableGraph) { StructuredGraph calleeGraph = ((InlineableGraph) inlineable).getGraph(); Map<Node, Node> duplicateMap = InliningUtil.inline(invoke, calleeGraph, receiverNullCheck); - for (ParameterNode parameter : calleeGraph.getNodes(ParameterNode.class)) { - for (Node usage : parameter.usages()) { - Node node = duplicateMap.get(usage); - if (node != null && node.isAlive()) { - parameterUsages.add(node); - } - } - } + getInlinedParameterUsages(parameterUsages, calleeGraph, duplicateMap); } else { assert inlineable instanceof InlineableMacroNode; @@ -76,4 +69,15 @@ assumptions.recordMethodContents(concrete); return parameterUsages; } + + public static void getInlinedParameterUsages(Collection<Node> parameterUsages, StructuredGraph calleeGraph, Map<Node, Node> duplicateMap) { + for (ParameterNode parameter : calleeGraph.getNodes(ParameterNode.class)) { + for (Node usage : parameter.usages()) { + Node node = duplicateMap.get(usage); + if (node != null && node.isAlive()) { + parameterUsages.add(node); + } + } + } + } }