< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/InlineDuringParsingPlugin.java
Print this page
*** 33,53 ****
import org.graalvm.compiler.nodes.ValueNode;
import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext;
import org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin;
import jdk.vm.ci.meta.ResolvedJavaMethod;
public final class InlineDuringParsingPlugin implements InlineInvokePlugin {
/**
* Budget which when exceeded reduces the effective value of
* {@link BytecodeParserOptions#InlineDuringParsingMaxDepth} to
* {@link #MaxDepthAfterBudgetExceeded}.
*/
! private static final int NodeBudget = Integer.getInteger("InlineDuringParsingPlugin.NodeBudget", 2000);
! private static final int MaxDepthAfterBudgetExceeded = Integer.getInteger("InlineDuringParsingPlugin.MaxDepthAfterBudgetExceeded", 3);
@Override
public InlineInfo shouldInlineInvoke(GraphBuilderContext b, ResolvedJavaMethod method, ValueNode[] args) {
// @formatter:off
if (method.hasBytecodes() &&
--- 33,62 ----
import org.graalvm.compiler.nodes.ValueNode;
import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext;
import org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin;
import jdk.vm.ci.meta.ResolvedJavaMethod;
+ import jdk.vm.ci.services.Services;
public final class InlineDuringParsingPlugin implements InlineInvokePlugin {
+ private static int getInteger(String name, int def) {
+ String value = Services.getSavedProperties().get(name);
+ if (value != null) {
+ return Integer.parseInt(value);
+ }
+ return def;
+ }
+
/**
* Budget which when exceeded reduces the effective value of
* {@link BytecodeParserOptions#InlineDuringParsingMaxDepth} to
* {@link #MaxDepthAfterBudgetExceeded}.
*/
! private static final int NodeBudget = getInteger("InlineDuringParsingPlugin.NodeBudget", 2000);
! private static final int MaxDepthAfterBudgetExceeded = getInteger("InlineDuringParsingPlugin.MaxDepthAfterBudgetExceeded", 3);
@Override
public InlineInfo shouldInlineInvoke(GraphBuilderContext b, ResolvedJavaMethod method, ValueNode[] args) {
// @formatter:off
if (method.hasBytecodes() &&
< prev index next >