# HG changeset patch # User Thomas Wuerthinger # Date 1418479400 -3600 # Node ID ecb9d0cedbab850ea3f4ab0fd8943036c8469c06 # Parent db8ce7ad932bf5d1848138fcd78fb7ee7d52082f First draft of option classification. diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/GraalOptions.java --- a/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/GraalOptions.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/GraalOptions.java Sat Dec 13 15:03:20 2014 +0100 @@ -30,317 +30,314 @@ // @formatter:off public final class GraalOptions { - @Option(help = "Use experimental baseline compiler configuration.") + @Option(help = "Use experimental baseline compiler configuration.", type = OptionType.Debug) public static final OptionValue UseBaselineCompiler = new OptionValue<>(false); - @Option(help = "Use compiler intrinsifications.") + @Option(help = "Use compiler intrinsifications.", type = OptionType.Debug) public static final OptionValue Intrinsify = new OptionValue<>(true); - @Option(help = "Inline calls with monomorphic type profile.") + @Option(help = "Inline calls with monomorphic type profile.", type = OptionType.Expert) public static final OptionValue InlineMonomorphicCalls = new OptionValue<>(true); - @Option(help = "Inline calls with polymorphic type profile.") + @Option(help = "Inline calls with polymorphic type profile.", type = OptionType.Expert) public static final OptionValue InlinePolymorphicCalls = new OptionValue<>(true); - @Option(help = "Inline calls with megamorphic type profile (i.e., not all types could be recorded).") + @Option(help = "Inline calls with megamorphic type profile (i.e., not all types could be recorded).", type = OptionType.Expert) public static final OptionValue InlineMegamorphicCalls = new OptionValue<>(true); - @Option(help = "Maximum desired size of the compiler graph in nodes.") + @Option(help = "Maximum desired size of the compiler graph in nodes.", type = OptionType.User) public static final OptionValue MaximumDesiredSize = new OptionValue<>(20000); - @Option(help = "Minimum probability for methods to be inlined for megamorphic type profiles.") + @Option(help = "Minimum probability for methods to be inlined for megamorphic type profiles.", type = OptionType.Expert) public static final OptionValue MegamorphicInliningMinMethodProbability = new OptionValue<>(0.33D); - @Option(help = "Maximum level of recursive inlining.") + @Option(help = "Maximum level of recursive inlining.", type = OptionType.Expert) public static final OptionValue MaximumRecursiveInlining = new OptionValue<>(5); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue IterativeInlining = new OptionValue<>(false); - @Option(help = "Graphs with less than this number of nodes are trivial and therefore always inlined.") + @Option(help = "Graphs with less than this number of nodes are trivial and therefore always inlined.", type = OptionType.Expert) public static final OptionValue TrivialInliningSize = new OptionValue<>(10); - @Option(help = "Inlining is explored up to this number of nodes in the graph for each call site.") + @Option(help = "Inlining is explored up to this number of nodes in the graph for each call site.", type = OptionType.Expert) public static final OptionValue MaximumInliningSize = new OptionValue<>(300); - @Option(help = "If the previous low-level graph size of the method exceeds the threshold, it is not inlined.") + @Option(help = "If the previous low-level graph size of the method exceeds the threshold, it is not inlined.", type = OptionType.Expert) public static final OptionValue SmallCompiledLowLevelGraphSize = new OptionValue<>(300); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue LimitInlinedInvokes = new OptionValue<>(5.0); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue InlineEverything = new OptionValue<>(false); // escape analysis settings - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PartialEscapeAnalysis = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue EscapeAnalysisIterations = new OptionValue<>(2); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue EscapeAnalyzeOnly = new OptionValue<>(null); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue MaximumEscapeAnalysisArrayLength = new OptionValue<>(32); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PEAInliningHints = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue TailDuplicationProbability = new OptionValue<>(0.5); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue TailDuplicationTrivialSize = new OptionValue<>(1); - // profiling information - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue DeoptsToDisableOptimisticOptimization = new OptionValue<>(40); - // graph caching - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue CacheGraphs = new OptionValue<>(false); - //loop transform settings TODO (gd) tune - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue LoopPeeling = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue ReassociateInvariants = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue FullUnroll = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue LoopUnswitch = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue FullUnrollMaxNodes = new OptionValue<>(300); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue ExactFullUnrollMaxNodes = new OptionValue<>(1200); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue MinimumPeelProbability = new OptionValue<>(0.35f); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue LoopMaxUnswitch = new OptionValue<>(3); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue LoopUnswitchMaxIncrease = new OptionValue<>(50); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue LoopUnswitchUncertaintyBoost = new OptionValue<>(5); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue UseLoopLimitChecks = new OptionValue<>(true); // debugging settings - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue ZapStackOnMethodEntry = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue DeoptALot = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue VerifyPhases = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintFilter = new OptionValue<>(null); // Debug settings: - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue BootstrapReplacements = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue GCDebugStartCycle = new OptionValue<>(-1); // Ideal graph visualizer output settings - @Option(help = "Dump IdealGraphVisualizer output in binary format") + @Option(help = "Dump IdealGraphVisualizer output in binary format", type = OptionType.Debug) public static final OptionValue PrintBinaryGraphs = new OptionValue<>(true); - @Option(help = "Output probabilities for fixed nodes during binary graph dumping") + @Option(help = "Output probabilities for fixed nodes during binary graph dumping", type = OptionType.Debug) public static final OptionValue PrintGraphProbabilities = new OptionValue<>(false); - @Option(help = "Enable dumping to the C1Visualizer. Enabling this option implies PrintBackendCFG.") + @Option(help = "Enable dumping to the C1Visualizer. Enabling this option implies PrintBackendCFG.", type = OptionType.Debug) public static final OptionValue PrintCFG = new OptionValue<>(false); - @Option(help = "Enable dumping LIR, register allocation and code generation info to the C1Visualizer.") + @Option(help = "Enable dumping LIR, register allocation and code generation info to the C1Visualizer.", type = OptionType.Debug) public static final OptionValue PrintBackendCFG = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintIdealGraphFile = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintIdealGraphAddress = new OptionValue<>("127.0.0.1"); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintIdealGraphPort = new OptionValue<>(4444); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintBinaryGraphPort = new OptionValue<>(4445); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintIdealGraphSchedule = new OptionValue<>(false); // Other printing settings - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintCompilation = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintAfterCompilation = new OptionValue<>(false); - @Option(help = "Print profiling information when parsing a method's bytecode") + @Option(help = "Print profiling information when parsing a method's bytecode", type = OptionType.Debug) public static final OptionValue PrintProfilingInformation = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintCodeBytes = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintBailout = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue TraceEscapeAnalysis = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue ExitVMOnBailout = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue ExitVMOnException = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue PrintStackTraceOnException = new OptionValue<>(false); - @Option(help = "Set a phase after which the decompiler dumps the graph, -G:Dump= required") + @Option(help = "Set a phase after which the decompiler dumps the graph, -G:Dump= required", type = OptionType.Debug) public static final OptionValue DecompileAfterPhase = new OptionValue<>(null); // HotSpot command line options - @Option(help = "Print inlining optimizations") + @Option(help = "Print inlining optimizations", type = OptionType.Debug) public static final OptionValue HotSpotPrintInlining = new OptionValue<>(false); // Register allocator debugging - @Option(help = "Comma separated list of register that the allocation is limited to.") + @Option(help = "Comma separated list of register that the allocation is limited to.", type = OptionType.Debug) public static final OptionValue RegisterPressure = new OptionValue<>(null); // Code generator settings - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue FlowSensitiveReduction = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue ConditionalElimination = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue UseProfilingInformation = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue RemoveNeverExecutedCode = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue UseExceptionProbability = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue UseExceptionProbabilityForOperations = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OmitHotExceptionStacktrace = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue GenSafepoints = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue GenLoopSafepoints = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue UseTypeCheckHints = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue InlineVTableStubs = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue AlwaysInlineVTableStubs = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue ResolveClassBeforeStaticInvoke = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue CanOmitFrame = new OptionValue<>(true); // Ahead of time compilation - @Option(help = "Try to avoid emitting code where patching is required") + @Option(help = "Try to avoid emitting code where patching is required", type = OptionType.Expert) public static final OptionValue ImmutableCode = new OptionValue<>(false); - @Option(help = "Generate position independent code") + @Option(help = "Generate position independent code", type = OptionType.Expert) public static final OptionValue GeneratePIC = new OptionValue<>(false); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue CallArrayCopy = new OptionValue<>(true); // Runtime settings - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue SupportJsrBytecodes = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Expert) public static final OptionValue OptAssumptions = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptConvertDeoptsToGuards = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptReadElimination = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptCanonicalizer = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptDeoptimizationGrouping = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptScheduleOutOfLoops = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptEliminateGuards = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptImplicitNullChecks = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptLivenessAnalysis = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptLoopTransform = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptFloatingReads = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptTailDuplication = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptEliminatePartiallyRedundantGuards = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptFilterProfiledTypes = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptDevirtualizeInvokesOptimistically = new OptionValue<>(true); - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptPushThroughPi = new OptionValue<>(true); - @Option(help = "Allow backend to match complex expressions.") + @Option(help = "Allow backend to match complex expressions.", type = OptionType.Debug) public static final OptionValue MatchExpressions = new OptionValue<>(true); - @Option(help = "Constant fold final fields with default values.") + @Option(help = "Constant fold final fields with default values.", type = OptionType.Debug) public static final OptionValue TrustFinalDefaultFields = new OptionValue<>(true); - @Option(help = "Mark well-known stable fields as such.") + @Option(help = "Mark well-known stable fields as such.", type = OptionType.Debug) public static final OptionValue ImplicitStableValues = new OptionValue<>(true); /** * Counts the various paths taken through snippets. */ - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue SnippetCounters = new OptionValue<>(false); } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Sat Dec 13 15:03:20 2014 +0100 @@ -84,13 +84,13 @@ */ @Option(help = "Pattern for method(s) to which intrinsification (if available) will be applied. " + "By default, all available intrinsifications are applied except for methods matched " + - "by IntrinsificationsDisabled. See MethodFilter class for pattern syntax.") + "by IntrinsificationsDisabled. See MethodFilter class for pattern syntax.", type = OptionType.Debug) public static final OptionValue IntrinsificationsEnabled = new OptionValue<>(null); /** * @see MethodFilter */ @Option(help = "Pattern for method(s) to which intrinsification will not be applied. " + - "See MethodFilter class for pattern syntax.") + "See MethodFilter class for pattern syntax.", type = OptionType.Debug) public static final OptionValue IntrinsificationsDisabled = new OptionValue<>(null); // @formatter:on diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java Sat Dec 13 15:03:20 2014 +0100 @@ -38,31 +38,31 @@ public class GraalDebugConfig implements DebugConfig { // @formatter:off - @Option(help = "Pattern for scope(s) in which dumping is enabled (see DebugFilter and Debug.dump)") + @Option(help = "Pattern for scope(s) in which dumping is enabled (see DebugFilter and Debug.dump)", type = OptionType.Debug) public static final OptionValue Dump = new OptionValue<>(null); - @Option(help = "Pattern for scope(s) in which metering is enabled (see DebugFilter and Debug.metric)") + @Option(help = "Pattern for scope(s) in which metering is enabled (see DebugFilter and Debug.metric)", type = OptionType.Debug) public static final OptionValue Meter = new OptionValue<>(null); - @Option(help = "Pattern for scope(s) in which verification is enabled (see DebugFilter and Debug.verify)") + @Option(help = "Pattern for scope(s) in which verification is enabled (see DebugFilter and Debug.verify)", type = OptionType.Debug) public static final OptionValue Verify = new OptionValue<>(null); - @Option(help = "Pattern for scope(s) in which memory use tracking is enabled (see DebugFilter and Debug.metric)") + @Option(help = "Pattern for scope(s) in which memory use tracking is enabled (see DebugFilter and Debug.metric)", type = OptionType.Debug) public static final OptionValue TrackMemUse = new OptionValue<>(null); - @Option(help = "Pattern for scope(s) in which timing is enabled (see DebugFilter and Debug.timer)") + @Option(help = "Pattern for scope(s) in which timing is enabled (see DebugFilter and Debug.timer)", type = OptionType.Debug) public static final OptionValue Time = new OptionValue<>(null); - @Option(help = "Pattern for scope(s) in which logging is enabled (see DebugFilter and Debug.log)") + @Option(help = "Pattern for scope(s) in which logging is enabled (see DebugFilter and Debug.log)", type = OptionType.Debug) public static final OptionValue Log = new OptionValue<>(null); - @Option(help = "Pattern for filtering debug scope output based on method context (see MethodFilter)") + @Option(help = "Pattern for filtering debug scope output based on method context (see MethodFilter)", type = OptionType.Debug) public static final OptionValue MethodFilter = new OptionValue<>(null); @Option(help = "How to print metric and timing values:%n" + "Name - aggregate by unqualified name%n" + "Partial - aggregate by partially qualified name (e.g., A.B.C.D.Counter and X.Y.Z.D.Counter will be merged to D.Counter)%n" + "Complete - aggregate by qualified name%n" + - "Thread - aggregate by qualified name and thread") + "Thread - aggregate by qualified name and thread", type = OptionType.Debug) public static final OptionValue DebugValueSummary = new OptionValue<>("Name"); - @Option(help = "Omit reporting 0-value metrics") + @Option(help = "Omit reporting 0-value metrics", type = OptionType.Debug) public static final OptionValue SuppressZeroDebugValues = new OptionValue<>(false); - @Option(help = "Send Graal IR to dump handlers on error") + @Option(help = "Send Graal IR to dump handlers on error", type = OptionType.Debug) public static final OptionValue DumpOnError = new OptionValue<>(false); - @Option(help = "Enable expensive assertions") + @Option(help = "Enable expensive assertions", type = OptionType.Debug) public static final OptionValue DetailedAsserts = new StableOptionValue() { @Override protected Boolean initialValue() { @@ -72,7 +72,7 @@ return enabled; } }; - @Option(help = "Enable more verbose log output when available") + @Option(help = "Enable more verbose log output when available", type = OptionType.Debug) public static final OptionValue LogVerbose = new OptionValue<>(false); // @formatter:on diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Sat Dec 13 15:03:20 2014 +0100 @@ -73,7 +73,7 @@ public static class Options { // @formatter:off - @Option(help = "Enable spill position optimization") + @Option(help = "Enable spill position optimization", type = OptionType.Debug) public static final OptionValue LSRAOptimizeSpillPosition = new OptionValue<>(true); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LocationMarker.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LocationMarker.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LocationMarker.java Sat Dec 13 15:03:20 2014 +0100 @@ -40,7 +40,7 @@ public static class Options { // @formatter:off - @Option(help = "Use decoupled pass for location marking (instead of using LSRA marking)") + @Option(help = "Use decoupled pass for location marking (instead of using LSRA marking)", type = OptionType.Debug) public static final OptionValue UseLocationMarker = new OptionValue<>(false); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/OptimizingLinearScanWalker.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/OptimizingLinearScanWalker.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/OptimizingLinearScanWalker.java Sat Dec 13 15:03:20 2014 +0100 @@ -38,9 +38,9 @@ public static class Options { // @formatter:off - @Option(help = "Enable LSRA optimization") + @Option(help = "Enable LSRA optimization", type = OptionType.Debug) public static final OptionValue LSRAOptimization = new OptionValue<>(true); - @Option(help = "LSRA optimization: Only split but do not reassign") + @Option(help = "LSRA optimization: Only split but do not reassign", type = OptionType.Debug) public static final OptionValue LSRAOptSplitOnly = new OptionValue<>(false); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java Sat Dec 13 15:03:20 2014 +0100 @@ -41,7 +41,7 @@ public static class Options { // @formatter:off - @Option(help = "Enable inlining") + @Option(help = "Enable inlining", type = OptionType.Expert) public static final OptionValue Inline = new OptionValue<>(true); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LowTier.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LowTier.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LowTier.java Sat Dec 13 15:03:20 2014 +0100 @@ -36,7 +36,7 @@ static class Options { // @formatter:off - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue ProfileCompiledMethods = new OptionValue<>(false); // @formatter:on diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Sat Dec 13 15:03:20 2014 +0100 @@ -40,7 +40,7 @@ public class Graph { static class Options { - @Option(help = "Verify graphs often during compilation when assertions are turned on")// + @Option(help = "Verify graphs often during compilation when assertions are turned on", type = OptionType.Debug)// public static final OptionValue VerifyGraalGraphs = new OptionValue<>(true); } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotBackend.java --- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotBackend.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotBackend.java Sat Dec 13 15:03:20 2014 +0100 @@ -89,7 +89,7 @@ public static class Options { // @formatter:off - @Option(help = "Number of TLABs used for HSAIL kernels which allocate") + @Option(help = "Number of TLABs used for HSAIL kernels which allocate", type = OptionType.Debug) public static final OptionValue HsailKernelTlabs = new OptionValue<>(4); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/replacements/HSAILNewObjectSnippets.java --- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/replacements/HSAILNewObjectSnippets.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/replacements/HSAILNewObjectSnippets.java Sat Dec 13 15:03:20 2014 +0100 @@ -59,13 +59,13 @@ public static class Options { // @formatter:off - @Option(help = "In HSAIL allocation, allow allocation from eden as fallback if TLAB is full") + @Option(help = "In HSAIL allocation, allow allocation from eden as fallback if TLAB is full", type = OptionType.Debug) static final OptionValue HsailUseEdenAllocate = new OptionValue<>(false); - @Option(help = "In HSAIL allocation, allow GPU to allocate a new tlab if TLAB is full") + @Option(help = "In HSAIL allocation, allow GPU to allocate a new tlab if TLAB is full", type = OptionType.Debug) static final OptionValue HsailNewTlabAllocate = new OptionValue<>(true); - @Option(help = "Estimate of number of bytes allocated by each HSAIL workitem, used to size TLABs") + @Option(help = "Estimate of number of bytes allocated by each HSAIL workitem, used to size TLABs", type = OptionType.Debug) public static final OptionValue HsailAllocBytesPerWorkitem = new OptionValue<>(64); // @formatter:on diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java Sat Dec 13 15:03:20 2014 +0100 @@ -56,19 +56,19 @@ public static class Options { // @formatter:off - @Option(help = "Compile all methods in all classes on given class path") + @Option(help = "Compile all methods in all classes on given class path", type = OptionType.Debug) public static final OptionValue CompileTheWorldClasspath = new OptionValue<>(SUN_BOOT_CLASS_PATH); - @Option(help = "Verbose CompileTheWorld operation") + @Option(help = "Verbose CompileTheWorld operation", type = OptionType.Debug) public static final OptionValue CompileTheWorldVerbose = new OptionValue<>(true); - @Option(help = "The number of CompileTheWorld iterations to perform") + @Option(help = "The number of CompileTheWorld iterations to perform", type = OptionType.Debug) public static final OptionValue CompileTheWorldIterations = new OptionValue<>(1); - @Option(help = "First class to consider when using -XX:+CompileTheWorld") + @Option(help = "First class to consider when using -XX:+CompileTheWorld", type = OptionType.Debug) public static final OptionValue CompileTheWorldStartAt = new OptionValue<>(1); - @Option(help = "Last class to consider when using -XX:+CompileTheWorld") + @Option(help = "Last class to consider when using -XX:+CompileTheWorld", type = OptionType.Debug) public static final OptionValue CompileTheWorldStopAt = new OptionValue<>(Integer.MAX_VALUE); @Option(help = "Option value overrides to use during compile the world. For example, " + "to disable inlining and partial escape analysis specify '-PartialEscapeAnalysis -Inline'. " + - "The format for each option is the same as on the command line just without the '-G:' prefix.") + "The format for each option is the same as on the command line just without the '-G:' prefix.", type = OptionType.Debug) public static final OptionValue CompileTheWorldConfig = new OptionValue<>(null); // @formatter:on diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java Sat Dec 13 15:03:20 2014 +0100 @@ -189,10 +189,10 @@ public static class Options { // @formatter:off - @Option(help = "The runtime configuration to use") + @Option(help = "The runtime configuration to use", type = OptionType.Expert) static final OptionValue GraalRuntime = new OptionValue<>(""); - @Option(help = "File to which logging is sent. A %p in the name will be replaced with a string identifying the process, usually the process id.") + @Option(help = "File to which logging is sent. A %p in the name will be replaced with a string identifying the process, usually the process id.", type = OptionType.Expert) public static final PrintStreamOption LogFile = new PrintStreamOption(); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/debug/BenchmarkCounters.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/debug/BenchmarkCounters.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/debug/BenchmarkCounters.java Sat Dec 13 15:03:20 2014 +0100 @@ -84,16 +84,16 @@ static class Options { //@formatter:off - @Option(help = "Turn on the benchmark counters, and displays the results on VM shutdown") + @Option(help = "Turn on the benchmark counters, and displays the results on VM shutdown", type = OptionType.Debug) private static final OptionValue GenericDynamicCounters = new OptionValue<>(false); - @Option(help = "Turn on the benchmark counters, and displays the results every n milliseconds") + @Option(help = "Turn on the benchmark counters, and displays the results every n milliseconds", type = OptionType.Debug) private static final OptionValue TimedDynamicCounters = new OptionValue<>(-1); @Option(help = "Turn on the benchmark counters, and listen for specific patterns on System.out/System.err:%n" + "Format: (err|out),start pattern,end pattern (~ matches multiple digits)%n" + "Examples:%n" + " dacapo = 'err, starting =====, PASSED in'%n" + - " specjvm2008 = 'out,Iteration ~ (~s) begins:,Iteration ~ (~s) ends:'") + " specjvm2008 = 'out,Iteration ~ (~s) begins:,Iteration ~ (~s) ends:'", type = OptionType.Debug) private static final OptionValue BenchmarkDynamicCounters = new OptionValue<>(null); //@formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java Sat Dec 13 15:03:20 2014 +0100 @@ -198,11 +198,11 @@ // @formatter:off @Option(help = "If the probability that a type check will hit one the profiled types (up to " + - "TypeCheckMaxHints) is below this value, the type check will be compiled without profiling info") + "TypeCheckMaxHints) is below this value, the type check will be compiled without profiling info", type = OptionType.Expert) static final OptionValue TypeCheckMinProfileHitProbability = new OptionValue<>(0.5); @Option(help = "The maximum number of profiled types that will be used when compiling a profiled type check. " + - "Note that TypeCheckMinProfileHitProbability also influences whether profiling info is used in compiled type checks.") + "Note that TypeCheckMinProfileHitProbability also influences whether profiling info is used in compiled type checks.", type = OptionType.Expert) static final OptionValue TypeCheckMaxHints = new OptionValue<>(2); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java Sat Dec 13 15:03:20 2014 +0100 @@ -70,7 +70,7 @@ public static class Options { //@formatter:off - @Option(help = "") + @Option(help = "", type = OptionType.Debug) private static final OptionValue ProfileMonitors = new OptionValue<>(false); //@formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Sat Dec 13 15:03:20 2014 +0100 @@ -69,7 +69,7 @@ static class Options { //@formatter:off - @Option(help = "") + @Option(help = "", type = OptionType.Debug) static final OptionValue ProfileAllocations = new OptionValue<>(false); //@formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java Sat Dec 13 15:03:20 2014 +0100 @@ -44,7 +44,7 @@ static class Options { // @formatter:off - @Option(help = "The trace level for the bytecode parser used when building a graph from bytecode") + @Option(help = "The trace level for the bytecode parser used when building a graph from bytecode", type = OptionType.Debug) public static final OptionValue TraceBytecodeParserLevel = new OptionValue<>(0); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java Sat Dec 13 15:03:20 2014 +0100 @@ -49,7 +49,7 @@ public static class Options { // @formatter:off - @Option(help = "Enable constant load optimization.") + @Option(help = "Enable constant load optimization.", type = OptionType.Debug) public static final OptionValue ConstantLoadOptimization = new OptionValue<>(true); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java Sat Dec 13 15:03:20 2014 +0100 @@ -48,9 +48,9 @@ public static class Options { // @formatter:off - @Option(help = "Print HIR along side LIR as the latter is generated") + @Option(help = "Print HIR along side LIR as the latter is generated", type = OptionType.Debug) public static final OptionValue PrintIRWithLIR = new OptionValue<>(false); - @Option(help = "The trace level for the LIR generator") + @Option(help = "The trace level for the LIR generator", type = OptionType.Debug) public static final OptionValue TraceLIRGeneratorLevel = new OptionValue<>(0); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.options/src/com/oracle/graal/options/Option.java --- a/graal/com.oracle.graal.options/src/com/oracle/graal/options/Option.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.options/src/com/oracle/graal/options/Option.java Sat Dec 13 15:03:20 2014 +0100 @@ -27,7 +27,7 @@ /** * Describes the attributes of an option whose {@link OptionValue value} is in a static field * annotated by this annotation type. - * + * * @see OptionProcessor * @see OptionDescriptor */ @@ -45,4 +45,9 @@ * The name of the option. By default, the name of the annotated field should be used. */ String name() default ""; + + /** + * Specifies the type of the option. + */ + OptionType type() default OptionType.Debug; } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.options/src/com/oracle/graal/options/OptionType.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.options/src/com/oracle/graal/options/OptionType.java Sat Dec 13 15:03:20 2014 +0100 @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.graal.options; + +/** + * Classifies Graal options in several categories depending on who this option is relevant for. + * + */ +public enum OptionType { + /** + * An option common for users to apply. + */ + User, + + /** + * An option only relevant in corner cases and for fine-tuning. + */ + Expert, + + /** + * An option only relevant when debugging the compiler. + */ + Debug +} diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DeadCodeEliminationPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DeadCodeEliminationPhase.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DeadCodeEliminationPhase.java Sat Dec 13 15:03:20 2014 +0100 @@ -34,7 +34,7 @@ public static class Options { // @formatter:off - @Option(help = "Disable optional dead code eliminations") + @Option(help = "Disable optional dead code eliminations", type = OptionType.Debug) public static final OptionValue ReduceDCE = new OptionValue<>(true); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningPhase.java Sat Dec 13 15:03:20 2014 +0100 @@ -37,7 +37,7 @@ public static class Options { // @formatter:off - @Option(help = "Unconditionally inline intrinsics") + @Option(help = "Unconditionally inline intrinsics", type = OptionType.Debug) public static final OptionValue AlwaysInlineIntrinsics = new OptionValue<>(false); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/Suites.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/Suites.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/Suites.java Sat Dec 13 15:03:20 2014 +0100 @@ -36,7 +36,7 @@ static class Options { // @formatter:off - @Option(help = "The compiler configuration to use") + @Option(help = "The compiler configuration to use", type = OptionType.User) static final OptionValue CompilerConfiguration = new OptionValue<>(""); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.printer/src/com/oracle/graal/printer/NoDeadCodeVerifyHandler.java --- a/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/NoDeadCodeVerifyHandler.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/NoDeadCodeVerifyHandler.java Sat Dec 13 15:03:20 2014 +0100 @@ -48,7 +48,7 @@ static class Options { // @formatter:off - @Option(help = "Run level for NoDeadCodeVerifyHandler (0 = off, 1 = info, 2 = verbose, 3 = fatal)") + @Option(help = "Run level for NoDeadCodeVerifyHandler (0 = off, 1 = info, 2 = verbose, 3 = fatal)", type = OptionType.Debug) public static final OptionValue NDCV = new OptionValue<>(0); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerOptions.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerOptions.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerOptions.java Sat Dec 13 15:03:20 2014 +0100 @@ -41,99 +41,137 @@ * Element = Include | '~' Exclude ; * */ - @Option(help = "Restrict compilation to comma-separated list of includes (or excludes prefixed with tilde)") + @Option(help = "Restrict compilation to comma-separated list of includes (or excludes prefixed with tilde)", type = OptionType.Debug) public static final OptionValue TruffleCompileOnly = new OptionValue<>(null); - @Option(help = "Compile call target when call count exceeds this threshold") + + @Option(help = "Compile call target when call count exceeds this threshold", type = OptionType.User) public static final OptionValue TruffleCompilationThreshold = new OptionValue<>(1000); - @Option(help = "Defines the maximum timespan in milliseconds that is required for a call target to be queued for compilation.") + + @Option(help = "Defines the maximum timespan in milliseconds that is required for a call target to be queued for compilation.", type = OptionType.User) public static final OptionValue TruffleTimeThreshold = new OptionValue<>(25000); - @Option(help = "Minimum number of calls before a call target is compiled") + + @Option(help = "Minimum number of calls before a call target is compiled", type = OptionType.Expert) public static final OptionValue TruffleMinInvokeThreshold = new OptionValue<>(3); - @Option(help = "Delay compilation after an invalidation to allow for reprofiling") + + @Option(help = "Delay compilation after an invalidation to allow for reprofiling", type = OptionType.Expert) public static final OptionValue TruffleInvalidationReprofileCount = new OptionValue<>(3); - @Option(help = "Delay compilation after a node replacement") + + @Option(help = "Delay compilation after a node replacement", type = OptionType.Expert) public static final OptionValue TruffleReplaceReprofileCount = new OptionValue<>(10); - @Option(help = "Enable automatic inlining of call targets") + + @Option(help = "Enable automatic inlining of call targets", type = OptionType.Debug) public static final OptionValue TruffleFunctionInlining = new OptionValue<>(true); - @Option(help = "Enable an expansion cache per CallTarget. Only functionable with TruffleContextSensitiveInlining enabled.") + + @Option(help = "Enable an expansion cache per CallTarget. Only functionable with TruffleContextSensitiveInlining enabled.", type = OptionType.Debug) public static final OptionValue TruffleFunctionInliningCache = new OptionValue<>(true); - @Option(help = "Maximum number of Graal IR nodes during partial evaluation") + + @Option(help = "Maximum number of Graal IR nodes during partial evaluation", type = OptionType.Expert) public static final OptionValue TruffleGraphMaxNodes = new OptionValue<>(200000); - @Option(help = "Stop inlining if caller's cumulative tree size would exceed this limit") + + @Option(help = "Stop inlining if caller's cumulative tree size would exceed this limit", type = OptionType.Expert) public static final OptionValue TruffleInliningMaxCallerSize = new OptionValue<>(2250); - @Option(help = "Defines the number of graal nodes that triggers a performance warning.") + @Option(help = "Defines the number of graal nodes that triggers a performance warning.", type = OptionType.Debug) public static final OptionValue TrufflePerformanceWarningGraalNodeCount = new OptionValue<>(1000); - @Option(help = "Enable call target splitting") + @Option(help = "Enable call target splitting", type = OptionType.Expert) public static final OptionValue TruffleSplitting = new OptionValue<>(true); - @Option(help = "Experimental: Enable the new version of truffle splitting.") + + @Option(help = "Experimental: Enable the new version of truffle splitting.", type = OptionType.Debug) public static final OptionValue TruffleSplittingNew = new OptionValue<>(false); - @Option(help = "Experimental. New splitting only: Whether or not splitting should be based instance comparisons of non TypedObjects") + + @Option(help = "Experimental. New splitting only: Whether or not splitting should be based instance comparisons of non TypedObjects", type = OptionType.Debug) public static final OptionValue TruffleSplittingClassInstanceStamps = new OptionValue<>(false); - @Option(help = "Experimental. New splitting only: Whether or not splitting should be based instance comparisons of TypedObjects") + + @Option(help = "Experimental. New splitting only: Whether or not splitting should be based instance comparisons of TypedObjects", type = OptionType.Debug) public static final OptionValue TruffleSplittingTypeInstanceStamps = new OptionValue<>(true); - @Option(help = "Experimental. New splitting only: The number of calls until splitting is performed. ") + + @Option(help = "Experimental. New splitting only: The number of calls until splitting is performed. ", type = OptionType.Debug) public static final OptionValue TruffleSplittingStartCallCount = new OptionValue<>(3); - @Option(help = "Experimental. New splitting only: Split everything aggressively. ") + + @Option(help = "Experimental. New splitting only: Split everything aggressively. ", type = OptionType.Debug) public static final OptionValue TruffleSplittingAggressive = new OptionValue<>(false); - - @Option(help = "Disable call target splitting if tree size exceeds this limit") + @Option(help = "Disable call target splitting if tree size exceeds this limit", type = OptionType.Debug) public static final OptionValue TruffleSplittingMaxCalleeSize = new OptionValue<>(100); - @Option(help = "Number of most recently used methods in truffle cache") + + @Option(help = "Number of most recently used methods in truffle cache", type = OptionType.Debug) public static final OptionValue TruffleMaxCompilationCacheSize = new OptionValue<>(512); - @Option(help = "Enable asynchronous truffle compilation in background thread") + + @Option(help = "Enable asynchronous truffle compilation in background thread", type = OptionType.Expert) public static final OptionValue TruffleBackgroundCompilation = new OptionValue<>(true); - @Option(help = "") + + @Option(help = "", type = OptionType.Debug) public static final OptionValue TruffleCompilationDecisionTime = new OptionValue<>(100); - @Option(help = "") + + @Option(help = "", type = OptionType.Debug) public static final OptionValue TruffleCompilationDecisionTimePrintFail = new OptionValue<>(false); - @Option(help = "") + + @Option(help = "", type = OptionType.Debug) public static final OptionValue TruffleReturnTypeSpeculation = new StableOptionValue<>(true); - @Option(help = "") + + @Option(help = "", type = OptionType.Debug) public static final OptionValue TruffleArgumentTypeSpeculation = new StableOptionValue<>(true); // tracing - @Option(help = "Print potential performance problems") + @Option(help = "Print potential performance problems", type = OptionType.Debug) public static final OptionValue TraceTrufflePerformanceWarnings = new OptionValue<>(false); - @Option(help = "Print information for compilation results") + + @Option(help = "Print information for compilation results", type = OptionType.Debug) public static final OptionValue TraceTruffleCompilation = new OptionValue<>(false); - @Option(help = "Print information for compilation queuing") + + @Option(help = "Print information for compilation queuing", type = OptionType.Debug) public static final OptionValue TraceTruffleCompilationDetails = new OptionValue<>(false); - @Option(help = "Print a node count histogram after each compilation") + + @Option(help = "Print a node count histogram after each compilation", type = OptionType.Debug) public static final OptionValue TraceTruffleCompilationHistogram = new OptionValue<>(false); - @Option(help = "Print all polymorphic and generic nodes after each compilation") + + @Option(help = "Print all polymorphic and generic nodes after each compilation", type = OptionType.Debug) public static final OptionValue TraceTruffleCompilationPolymorphism = new OptionValue<>(false); - @Option(help = "Print all polymorphic and generic nodes after each compilation") + + @Option(help = "Print all polymorphic and generic nodes after each compilation", type = OptionType.Debug) public static final OptionValue TraceTruffleCompilationAST = new OptionValue<>(false); - @Option(help = "Print the inlined call tree for each compiled method") + + @Option(help = "Print the inlined call tree for each compiled method", type = OptionType.Debug) public static final OptionValue TraceTruffleCompilationCallTree = new OptionValue<>(false); - @Option(help = "Print the expansion trees for each compilation") + + @Option(help = "Print the expansion trees for each compilation", type = OptionType.Debug) public static final OptionValue TraceTruffleExpansion = new OptionValue<>(false); - @Option(help = "Print source secions for printed expansion trees") + + @Option(help = "Print source secions for printed expansion trees", type = OptionType.Debug) public static final OptionValue TraceTruffleExpansionSource = new OptionValue<>(false); - @Option(help = "Print detailed information for the Truffle compilation cache") + + @Option(help = "Print detailed information for the Truffle compilation cache", type = OptionType.Debug) public static final OptionValue TraceTruffleCacheDetails = new OptionValue<>(false); - @Option(help = "Treat compilation exceptions as fatal exceptions that will exit the application") + + @Option(help = "Treat compilation exceptions as fatal exceptions that will exit the application", type = OptionType.Debug) public static final OptionValue TruffleCompilationExceptionsAreFatal = new OptionValue<>(false); - @Option(help = "Treat compilation exceptions as thrown runtime exceptions") + + @Option(help = "Treat compilation exceptions as thrown runtime exceptions", type = OptionType.Debug) public static final OptionValue TruffleCompilationExceptionsAreThrown = new OptionValue<>(false); - @Option(help = "Print information for inlining for each compilation.") + + @Option(help = "Print information for inlining for each compilation.", type = OptionType.Debug) public static final OptionValue TraceTruffleInlining = new OptionValue<>(false); - @Option(help = "Print information for each splitted call site.") + + @Option(help = "Print information for each splitted call site.", type = OptionType.Debug) public static final OptionValue TraceTruffleSplitting = new OptionValue<>(false); - @Option(help = "Print stack trace on transfer to interpreter") + + @Option(help = "Print stack trace on transfer to interpreter", type = OptionType.Debug) public static final OptionValue TraceTruffleTransferToInterpreter = new StableOptionValue<>(false); - @Option(help = "Print stack trace on assumption invalidation") + + @Option(help = "Print stack trace on assumption invalidation", type = OptionType.Debug) public static final OptionValue TraceTruffleAssumptions = new StableOptionValue<>(false); - @Option(help = "Number of stack trace elements printed by TraceTruffleTransferToInterpreter and TraceTruffleAssumptions") + + @Option(help = "Number of stack trace elements printed by TraceTruffleTransferToInterpreter and TraceTruffleAssumptions", type = OptionType.Debug) public static final OptionValue TraceTruffleStackTraceLimit = new OptionValue<>(20); - @Option(help = "Print a summary of execution counts for all executed CallTargets. Introduces counter overhead for each call.") + + @Option(help = "Print a summary of execution counts for all executed CallTargets. Introduces counter overhead for each call.", type = OptionType.Debug) public static final OptionValue TruffleCallTargetProfiling = new StableOptionValue<>(false); - @Option(help = "Print Truffle compilation statistics at the end of a run.") + + @Option(help = "Print Truffle compilation statistics at the end of a run.", type = OptionType.Debug) public static final OptionValue TruffleCompilationStatistics = new OptionValue<>(false); - @Option(help = "Print additional more verbose Truffle compilation statistics at the end of a run.") + + @Option(help = "Print additional more verbose Truffle compilation statistics at the end of a run.", type = OptionType.Debug) public static final OptionValue TruffleCompilationStatisticDetails = new OptionValue<>(false); // @formatter:on } diff -r db8ce7ad932b -r ecb9d0cedbab graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapePhase.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapePhase.java Fri Dec 12 15:57:35 2014 -0800 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapePhase.java Sat Dec 13 15:03:20 2014 +0100 @@ -45,7 +45,7 @@ static class Options { //@formatter:off - @Option(help = "") + @Option(help = "", type = OptionType.Debug) public static final OptionValue OptEarlyReadElimination = new OptionValue<>(true); //@formatter:on }