# HG changeset patch # User Andreas Woess # Date 1375097999 -7200 # Node ID 6caff31de51c493fc1f445149bbcb36e0bffdfe2 # Parent 42ab15e31736eebf54b418bd13d170da9094b2b8 Truffle: ReplaceIntrinsicsPhase should also handle macro substitutions. diff -r 42ab15e31736 -r 6caff31de51c graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/phases/ReplaceIntrinsicsPhase.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/phases/ReplaceIntrinsicsPhase.java Mon Jul 29 12:11:59 2013 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/phases/ReplaceIntrinsicsPhase.java Mon Jul 29 13:39:59 2013 +0200 @@ -47,10 +47,16 @@ if (methodCallTarget.isAlive()) { InvokeKind invokeKind = methodCallTarget.invokeKind(); if (invokeKind == InvokeKind.Static || invokeKind == InvokeKind.Special) { - StructuredGraph inlineGraph = replacements.getMethodSubstitution(methodCallTarget.targetMethod()); - if (inlineGraph != null) { - InliningUtil.inline(methodCallTarget.invoke(), inlineGraph, false); + Class macroSubstitution = replacements.getMacroSubstitution(methodCallTarget.targetMethod()); + if (macroSubstitution != null) { + InliningUtil.inlineMacroNode(methodCallTarget.invoke(), methodCallTarget.targetMethod(), graph, macroSubstitution); Debug.dump(graph, "After inlining %s", methodCallTarget.targetMethod().toString()); + } else { + StructuredGraph inlineGraph = replacements.getMethodSubstitution(methodCallTarget.targetMethod()); + if (inlineGraph != null) { + InliningUtil.inline(methodCallTarget.invoke(), inlineGraph, true); + Debug.dump(graph, "After inlining %s", methodCallTarget.targetMethod().toString()); + } } } }