Mercurial > hg > graal-jvmci-8
changeset 13600:32ba70c49d27
Replacements: try to inline MacroNodes first
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Fri, 10 Jan 2014 14:18:12 +0100 |
parents | 29b1b216d20a |
children | fd522e725ee5 |
files | graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java |
diffstat | 1 files changed, 5 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Fri Jan 10 15:03:22 2014 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Fri Jan 10 14:18:12 2014 +0100 @@ -419,6 +419,10 @@ afterInline(graph, originalGraph, null); substituteCallsOriginal = true; } else { + Class<? extends FixedWithNextNode> macroNodeClass = InliningUtil.getMacroNodeClass(ReplacementsImpl.this, callee); + if (macroNodeClass != null) { + InliningUtil.inlineMacroNode(callTarget.invoke(), callee, graph, macroNodeClass); + } else { StructuredGraph intrinsicGraph = InliningUtil.getIntrinsicGraph(ReplacementsImpl.this, callee); if ((callTarget.invokeKind() == InvokeKind.Static || callTarget.invokeKind() == InvokeKind.Special) && (policy.shouldInline(callee, methodToParse) || (intrinsicGraph != null && policy.shouldUseReplacement(callee, methodToParse)))) { @@ -440,6 +444,7 @@ } } } + } afterInlining(graph);