# HG changeset patch # User Miguel Garcia # Date 1400527606 -7200 # Node ID 190b92ee969e76c7f2d0a2057e0c324cdfc2eaaa # Parent e534a7a893aaa5ceddc8e84d2f22ad5b533ce105 [inlining-5] "where does replacements come from?" answered diff -r e534a7a893aa -r 190b92ee969e graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java Mon May 19 21:23:53 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java Mon May 19 21:26:46 2014 +0200 @@ -35,7 +35,6 @@ import com.oracle.graal.graph.Node; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.java.MethodCallTargetNode; -import com.oracle.graal.nodes.spi.Replacements; import com.oracle.graal.phases.OptimisticOptimizations; import com.oracle.graal.phases.common.CanonicalizerPhase; import com.oracle.graal.phases.common.inlining.InliningUtil; @@ -91,11 +90,11 @@ pushGraph(rootGraph, 1.0, 1.0); } - private boolean checkTargetConditions(Replacements replacements, Invoke invoke, ResolvedJavaMethod method, OptimisticOptimizations optimisticOpts) { + private boolean checkTargetConditions(Invoke invoke, ResolvedJavaMethod method, OptimisticOptimizations optimisticOpts) { String failureMessage = null; if (method == null) { failureMessage = "the method is not resolved"; - } else if (method.isNative() && (!Intrinsify.getValue() || !InliningUtil.canIntrinsify(replacements, method))) { + } else if (method.isNative() && (!Intrinsify.getValue() || !InliningUtil.canIntrinsify(context.getReplacements(), method))) { failureMessage = "it is a non-intrinsic native method"; } else if (method.isAbstract()) { failureMessage = "it is an abstract method"; @@ -218,7 +217,7 @@ ResolvedJavaType type = ptypes[0].getType(); assert type.isArray() || !type.isAbstract(); ResolvedJavaMethod concrete = type.resolveMethod(targetMethod, contextType); - if (!checkTargetConditions(context.getReplacements(), invoke, concrete, optimisticOpts)) { + if (!checkTargetConditions(invoke, concrete, optimisticOpts)) { return null; } return new TypeGuardInlineInfo(invoke, concrete, type); @@ -306,7 +305,7 @@ } for (ResolvedJavaMethod concrete : concreteMethods) { - if (!checkTargetConditions(context.getReplacements(), invoke, concrete, optimisticOpts)) { + if (!checkTargetConditions(invoke, concrete, optimisticOpts)) { InliningUtil.logNotInlined(invoke, inliningDepth(), targetMethod, "it is a polymorphic method call and at least one invoked method cannot be inlined"); return null; } @@ -317,7 +316,7 @@ private InlineInfo getAssumptionInlineInfo(Invoke invoke, ResolvedJavaMethod concrete, Assumptions.Assumption takenAssumption) { assert !concrete.isAbstract(); - if (!checkTargetConditions(context.getReplacements(), invoke, concrete, context.getOptimisticOptimizations())) { + if (!checkTargetConditions(invoke, concrete, context.getOptimisticOptimizations())) { return null; } return new AssumptionInlineInfo(invoke, concrete, takenAssumption); @@ -325,7 +324,7 @@ private InlineInfo getExactInlineInfo(Invoke invoke, ResolvedJavaMethod targetMethod) { assert !targetMethod.isAbstract(); - if (!checkTargetConditions(context.getReplacements(), invoke, targetMethod, context.getOptimisticOptimizations())) { + if (!checkTargetConditions(invoke, targetMethod, context.getOptimisticOptimizations())) { return null; } return new ExactInlineInfo(invoke, targetMethod);