src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/GraalOptions.java
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 54724 62f373a53296
child 58679 9c3209ff7550
equal deleted inserted replaced
58677:13588c901957 58678:9cf78a70fa4f
    24 
    24 
    25 package org.graalvm.compiler.core.common;
    25 package org.graalvm.compiler.core.common;
    26 
    26 
    27 import org.graalvm.compiler.options.Option;
    27 import org.graalvm.compiler.options.Option;
    28 import org.graalvm.compiler.options.OptionKey;
    28 import org.graalvm.compiler.options.OptionKey;
       
    29 import org.graalvm.compiler.options.OptionStability;
    29 import org.graalvm.compiler.options.OptionType;
    30 import org.graalvm.compiler.options.OptionType;
    30 
    31 
    31 /**
    32 /**
    32  * This class encapsulates options that control the behavior of the Graal compiler.
    33  * This class encapsulates options that control the behavior of the GraalVM compiler.
    33  */
    34  */
    34 // @formatter:off
    35 // @formatter:off
    35 public final class GraalOptions {
    36 public final class GraalOptions {
    36 
    37 
    37     @Option(help = "Use compiler intrinsifications.", type = OptionType.Debug)
    38     @Option(help = "Use compiler intrinsifications.", type = OptionType.Debug)
    60 
    61 
    61     @Option(help = "Inlining is explored up to this number of nodes in the graph for each call site.", type = OptionType.Expert)
    62     @Option(help = "Inlining is explored up to this number of nodes in the graph for each call site.", type = OptionType.Expert)
    62     public static final OptionKey<Integer> MaximumInliningSize = new OptionKey<>(300);
    63     public static final OptionKey<Integer> MaximumInliningSize = new OptionKey<>(300);
    63 
    64 
    64     @Option(help = "If the previous low-level graph size of the method exceeds the threshold, it is not inlined.", type = OptionType.Expert)
    65     @Option(help = "If the previous low-level graph size of the method exceeds the threshold, it is not inlined.", type = OptionType.Expert)
    65     public static final OptionKey<Integer> SmallCompiledLowLevelGraphSize = new OptionKey<>(300);
    66     public static final OptionKey<Integer> SmallCompiledLowLevelGraphSize = new OptionKey<>(330);
    66 
    67 
    67     @Option(help = "", type = OptionType.Expert)
    68     @Option(help = "", type = OptionType.Expert)
    68     public static final OptionKey<Double> LimitInlinedInvokes = new OptionKey<>(5.0);
    69     public static final OptionKey<Double> LimitInlinedInvokes = new OptionKey<>(5.0);
    69 
    70 
    70     @Option(help = "", type = OptionType.Expert)
    71     @Option(help = "", type = OptionType.Expert)
   165 
   166 
   166     @Option(help = "", type = OptionType.Debug)
   167     @Option(help = "", type = OptionType.Debug)
   167     public static final OptionKey<Boolean> ConditionalElimination = new OptionKey<>(true);
   168     public static final OptionKey<Boolean> ConditionalElimination = new OptionKey<>(true);
   168 
   169 
   169     @Option(help = "", type = OptionType.Debug)
   170     @Option(help = "", type = OptionType.Debug)
       
   171     public static final OptionKey<Integer> ConditionalEliminationMaxIterations = new OptionKey<>(4);
       
   172 
       
   173     @Option(help = "", type = OptionType.Debug)
   170     public static final OptionKey<Boolean> RawConditionalElimination = new OptionKey<>(true);
   174     public static final OptionKey<Boolean> RawConditionalElimination = new OptionKey<>(true);
   171 
   175 
   172     @Option(help = "", type = OptionType.Debug)
   176     @Option(help = "", type = OptionType.Debug)
   173     public static final OptionKey<Boolean> ReplaceInputsWithConstantsBasedOnStamps = new OptionKey<>(true);
   177     public static final OptionKey<Boolean> ReplaceInputsWithConstantsBasedOnStamps = new OptionKey<>(true);
   174 
   178 
   236 
   240 
   237     @Option(help = "", type = OptionType.Debug)
   241     @Option(help = "", type = OptionType.Debug)
   238     public static final OptionKey<Boolean> OptImplicitNullChecks = new OptionKey<>(true);
   242     public static final OptionKey<Boolean> OptImplicitNullChecks = new OptionKey<>(true);
   239 
   243 
   240     @Option(help = "", type = OptionType.Debug)
   244     @Option(help = "", type = OptionType.Debug)
   241     public static final OptionKey<Boolean> OptClearNonLiveLocals = new OptionKey<>(true);
       
   242 
       
   243     @Option(help = "", type = OptionType.Debug)
       
   244     public static final OptionKey<Boolean> OptLoopTransform = new OptionKey<>(true);
   245     public static final OptionKey<Boolean> OptLoopTransform = new OptionKey<>(true);
   245 
   246 
   246     @Option(help = "", type = OptionType.Debug)
   247     @Option(help = "", type = OptionType.Debug)
   247     public static final OptionKey<Boolean> OptFloatingReads = new OptionKey<>(true);
   248     public static final OptionKey<Boolean> OptFloatingReads = new OptionKey<>(true);
   248 
   249 
   271     public static final OptionKey<Boolean> EagerSnippets = new OptionKey<>(false);
   272     public static final OptionKey<Boolean> EagerSnippets = new OptionKey<>(false);
   272 
   273 
   273     @Option(help = "Use a cache for snippet graphs.", type = OptionType.Debug)
   274     @Option(help = "Use a cache for snippet graphs.", type = OptionType.Debug)
   274     public static final OptionKey<Boolean> UseSnippetGraphCache = new OptionKey<>(true);
   275     public static final OptionKey<Boolean> UseSnippetGraphCache = new OptionKey<>(true);
   275 
   276 
   276     @Option(help = "file:doc-files/TraceInliningHelp.txt", type = OptionType.Debug)
   277     @Option(help = "file:doc-files/TraceInliningHelp.txt", type = OptionType.Debug, stability = OptionStability.STABLE)
   277     public static final OptionKey<Boolean> TraceInlining = new OptionKey<>(false);
   278     public static final OptionKey<Boolean> TraceInlining = new OptionKey<>(false);
   278 
   279 
   279     @Option(help = "Enable inlining decision tracing in stubs and snippets.", type = OptionType.Debug)
   280     @Option(help = "Enable inlining decision tracing in stubs and snippets.", type = OptionType.Debug)
   280     public static final OptionKey<Boolean> TraceInliningForStubsAndSnippets = new OptionKey<>(false);
   281     public static final OptionKey<Boolean> TraceInliningForStubsAndSnippets = new OptionKey<>(false);
   281 
   282 
   286     public static final OptionKey<Boolean> UseEncodedGraphs = new OptionKey<>(false);
   287     public static final OptionKey<Boolean> UseEncodedGraphs = new OptionKey<>(false);
   287 
   288 
   288     @Option(help = "If applicable, use bulk zeroing instructions when the zeroing size in bytes exceeds this threshold.", type = OptionType.Expert)
   289     @Option(help = "If applicable, use bulk zeroing instructions when the zeroing size in bytes exceeds this threshold.", type = OptionType.Expert)
   289     public static final OptionKey<Integer> MinimalBulkZeroingSize = new OptionKey<>(2048);
   290     public static final OptionKey<Integer> MinimalBulkZeroingSize = new OptionKey<>(2048);
   290 
   291 
       
   292     @Option(help = "Alignment in bytes for loop header blocks.", type = OptionType.Expert)
       
   293     public static final OptionKey<Integer> LoopHeaderAlignment = new OptionKey<>(16);
   291 }
   294 }