# HG changeset patch # User Thomas Wuerthinger # Date 1421028816 -3600 # Node ID 21de06b3f4290530eabb20f4f5d5e57405cbda27 # Parent 2f78f970adea312de75162bda980b51fdc67eb78 Respect canBeInlined in Truffle partial evaluation. diff -r 2f78f970adea -r 21de06b3f429 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 Mon Jan 12 00:25:56 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Mon Jan 12 03:13:36 2015 +0100 @@ -270,7 +270,7 @@ StructuredGraph inlineGraph = replacements.getMethodSubstitution(methodCallTargetNode.targetMethod()); ResolvedJavaMethod targetMethod = methodCallTargetNode.targetMethod(); - if (inlineGraph == null && targetMethod.hasBytecodes()) { + if (inlineGraph == null && targetMethod.hasBytecodes() && targetMethod.canBeInlined()) { inlineGraph = parseGraph(methodCallTargetNode.targetMethod(), methodCallTargetNode.arguments(), phaseContext); } diff -r 2f78f970adea -r 21de06b3f429 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java Mon Jan 12 00:25:56 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java Mon Jan 12 03:13:36 2015 +0100 @@ -330,7 +330,7 @@ } protected boolean shouldInline(MethodCallTargetNode methodCallTargetNode) { - boolean result = methodCallTargetNode.invokeKind().isDirect() && methodCallTargetNode.targetMethod().hasBytecodes() && + boolean result = methodCallTargetNode.invokeKind().isDirect() && methodCallTargetNode.targetMethod().hasBytecodes() && methodCallTargetNode.targetMethod().canBeInlined() && methodCallTargetNode.targetMethod().getAnnotation(ExplodeLoop.class) == null && methodCallTargetNode.targetMethod().getAnnotation(CompilerDirectives.TruffleBoundary.class) == null && !methodCallTargetNode.targetMethod().getDeclaringClass().equals(stringBuilderClass);