# HG changeset patch # User Thomas Wuerthinger # Date 1421006785 -3600 # Node ID 40df42df39e0a47d030a9a8643896607ac911da6 # Parent 1615039504943f2e0cb02c3f6d643b2960e8ed67 Can be inlined must also return true for native methods that are intrinsified. diff -r 161503950494 -r 40df42df39e0 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java Sun Jan 11 21:04:56 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java Sun Jan 11 21:06:25 2015 +0100 @@ -547,7 +547,7 @@ if (isDontInline()) { return false; } - return this.hasBytecodes() && runtime().getCompilerToVM().canInlineMethod(metaspaceMethod); + return runtime().getCompilerToVM().canInlineMethod(metaspaceMethod); } @Override diff -r 161503950494 -r 40df42df39e0 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 Sun Jan 11 21:04:56 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Sun Jan 11 21:06:25 2015 +0100 @@ -270,7 +270,7 @@ StructuredGraph inlineGraph = replacements.getMethodSubstitution(methodCallTargetNode.targetMethod()); ResolvedJavaMethod targetMethod = methodCallTargetNode.targetMethod(); - if (inlineGraph == null && targetMethod.canBeInlined()) { + if (inlineGraph == null && targetMethod.hasBytecodes()) { inlineGraph = parseGraph(methodCallTargetNode.targetMethod(), methodCallTargetNode.arguments(), phaseContext); } diff -r 161503950494 -r 40df42df39e0 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 Sun Jan 11 21:04:56 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java Sun Jan 11 21:06:25 2015 +0100 @@ -330,7 +330,7 @@ } protected boolean shouldInline(MethodCallTargetNode methodCallTargetNode) { - boolean result = methodCallTargetNode.invokeKind().isDirect() && methodCallTargetNode.targetMethod().canBeInlined() && + boolean result = methodCallTargetNode.invokeKind().isDirect() && methodCallTargetNode.targetMethod().hasBytecodes() && methodCallTargetNode.targetMethod().getAnnotation(ExplodeLoop.class) == null && methodCallTargetNode.targetMethod().getAnnotation(CompilerDirectives.TruffleBoundary.class) == null && !methodCallTargetNode.targetMethod().getDeclaringClass().equals(stringBuilderClass);