annotate graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerOptions.java @ 20097:e8e55ebcf069

Truffle: implement language agnostic OSR support.
author Christian Humer <christian.humer@gmail.com>
date Tue, 31 Mar 2015 02:16:33 +0200
parents c816aca2a3db
children 874eac8b4d7f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10484
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1 /*
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
4 *
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
8 *
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
13 * accompanied this code).
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
14 *
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
18 *
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
21 * questions.
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
22 */
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
23 package com.oracle.graal.truffle;
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
24
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
25 import com.oracle.graal.options.*;
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
26
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
27 /**
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
28 * Options for the Truffle compiler.
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
29 */
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
30 public class TruffleCompilerOptions {
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
31
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
32 // @formatter:off
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
33 // configuration
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
34 /**
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
35 * Instructs the Truffle Compiler to compile call targets only if their name contains at least one element of a comma-separated list of includes.
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
36 * Excludes are prefixed with a tilde (~).
11949
f2fbdf89a1a5 Remove obsolete TruffleCompilerOptions.
Andreas Woess <andreas.woess@jku.at>
parents: 11723
diff changeset
37 *
10484
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
38 * The format in EBNF:
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
39 * <pre>
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
40 * CompileOnly = Element, { ',', Element } ;
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
41 * Element = Include | '~' Exclude ;
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
42 * </pre>
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
43 */
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
44 @Option(help = "Restrict compilation to comma-separated list of includes (or excludes prefixed with tilde)", type = OptionType.Debug)
10484
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
45 public static final OptionValue<String> TruffleCompileOnly = new OptionValue<>(null);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
46
19147
609480dfa0d8 Create ExplodeLoop plugin prototype. Special sort for blocks from bci block map builder for explode loop methods. Graph builder plugin for customizing static field accesses. New Truffle option TruffleExcludeAssertions default true that excludes assertion code from being partial evaluated in the new partial evaluator.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19075
diff changeset
47 @Option(help = "Exclude assertion code from Truffle compilations", type = OptionType.Debug)
609480dfa0d8 Create ExplodeLoop plugin prototype. Special sort for blocks from bci block map builder for explode loop methods. Graph builder plugin for customizing static field accesses. New Truffle option TruffleExcludeAssertions default true that excludes assertion code from being partial evaluated in the new partial evaluator.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19075
diff changeset
48 public static final StableOptionValue<Boolean> TruffleExcludeAssertions = new StableOptionValue<>(true);
609480dfa0d8 Create ExplodeLoop plugin prototype. Special sort for blocks from bci block map builder for explode loop methods. Graph builder plugin for customizing static field accesses. New Truffle option TruffleExcludeAssertions default true that excludes assertion code from being partial evaluated in the new partial evaluator.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19075
diff changeset
49
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
50 @Option(help = "Compile call target when call count exceeds this threshold", type = OptionType.User)
15105
4833806209f2 Truffle: fixed compiler options.
Christian Humer <christian.humer@gmail.com>
parents: 15098
diff changeset
51 public static final OptionValue<Integer> TruffleCompilationThreshold = new OptionValue<>(1000);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
52
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
53 @Option(help = "Defines the maximum timespan in milliseconds that is required for a call target to be queued for compilation.", type = OptionType.User)
18339
f212e8329825 Truffle: increased the default TruffleTimeThreshold from 5s to 25s. This should be backed out once we have OSR.
Danilo Ansaloni <danilo.ansaloni@oracle.com>
parents: 18276
diff changeset
54 public static final OptionValue<Integer> TruffleTimeThreshold = new OptionValue<>(25000);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
55
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
56 @Option(help = "Minimum number of calls before a call target is compiled", type = OptionType.Expert)
15105
4833806209f2 Truffle: fixed compiler options.
Christian Humer <christian.humer@gmail.com>
parents: 15098
diff changeset
57 public static final OptionValue<Integer> TruffleMinInvokeThreshold = new OptionValue<>(3);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
58
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
59 @Option(help = "Delay compilation after an invalidation to allow for reprofiling", type = OptionType.Expert)
10867
4ead4f35b91f Truffle: use loopAndInvokeCounter for replace backoff.
Andreas Woess <andreas.woess@jku.at>
parents: 10862
diff changeset
60 public static final OptionValue<Integer> TruffleInvalidationReprofileCount = new OptionValue<>(3);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
61
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
62 @Option(help = "Delay compilation after a node replacement", type = OptionType.Expert)
10867
4ead4f35b91f Truffle: use loopAndInvokeCounter for replace backoff.
Andreas Woess <andreas.woess@jku.at>
parents: 10862
diff changeset
63 public static final OptionValue<Integer> TruffleReplaceReprofileCount = new OptionValue<>(10);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
64
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
65 @Option(help = "Enable automatic inlining of call targets", type = OptionType.Debug)
10484
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
66 public static final OptionValue<Boolean> TruffleFunctionInlining = new OptionValue<>(true);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
67
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
68 @Option(help = "Enable an expansion cache per CallTarget. Only functionable with TruffleContextSensitiveInlining enabled.", type = OptionType.Debug)
17400
e3dd05527c2f Truffle: enabled context sensitive inlining by default. removed old inlining structures.
Christian Humer <christian.humer@gmail.com>
parents: 17273
diff changeset
69 public static final OptionValue<Boolean> TruffleFunctionInliningCache = new OptionValue<>(true);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
70
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
71 @Option(help = "Maximum number of Graal IR nodes during partial evaluation", type = OptionType.Expert)
15397
d030e31fe082 Increase default value for maximum number of Graal nodes during partial evaluation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 15222
diff changeset
72 public static final OptionValue<Integer> TruffleGraphMaxNodes = new OptionValue<>(200000);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
73
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
74 @Option(help = "Stop inlining if caller's cumulative tree size would exceed this limit", type = OptionType.Expert)
13334
39694f3b0ed9 Truffle: set default TruffleInliningMaxCallerSize to 2250.
Christian Humer <christian.humer@gmail.com>
parents: 13203
diff changeset
75 public static final OptionValue<Integer> TruffleInliningMaxCallerSize = new OptionValue<>(2250);
16410
7f862f0ab1bc Truffle: added new experimental splitting heuristic.
Christian Humer <christian.humer@gmail.com>
parents: 16407
diff changeset
76
19789
e66a6f8d63e3 Truffle: implement recursive inlining and with a maximum depth of 4.
Christian Humer <christian.humer@gmail.com>
parents: 19447
diff changeset
77 @Option(help = "Maximum level of recursive inlining", type = OptionType.Expert)
e66a6f8d63e3 Truffle: implement recursive inlining and with a maximum depth of 4.
Christian Humer <christian.humer@gmail.com>
parents: 19447
diff changeset
78 public static final OptionValue<Integer> TruffleMaximumRecursiveInlining = new OptionValue<>(4);
e66a6f8d63e3 Truffle: implement recursive inlining and with a maximum depth of 4.
Christian Humer <christian.humer@gmail.com>
parents: 19447
diff changeset
79
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
80 @Option(help = "Defines the number of graal nodes that triggers a performance warning.", type = OptionType.Debug)
17273
43655130d0ab Truffle: added a performance warning for number of nodes in a single Truffle cache entry.
Christian Humer <christian.humer@gmail.com>
parents: 17256
diff changeset
81 public static final OptionValue<Integer> TrufflePerformanceWarningGraalNodeCount = new OptionValue<>(1000);
43655130d0ab Truffle: added a performance warning for number of nodes in a single Truffle cache entry.
Christian Humer <christian.humer@gmail.com>
parents: 17256
diff changeset
82
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
83 @Option(help = "Enable call target splitting", type = OptionType.Expert)
16410
7f862f0ab1bc Truffle: added new experimental splitting heuristic.
Christian Humer <christian.humer@gmail.com>
parents: 16407
diff changeset
84 public static final OptionValue<Boolean> TruffleSplitting = new OptionValue<>(true);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
85
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
86 @Option(help = "Experimental: Enable the new version of truffle splitting.", type = OptionType.Debug)
16410
7f862f0ab1bc Truffle: added new experimental splitting heuristic.
Christian Humer <christian.humer@gmail.com>
parents: 16407
diff changeset
87 public static final OptionValue<Boolean> TruffleSplittingNew = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
88
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
89 @Option(help = "Experimental. New splitting only: Whether or not splitting should be based instance comparisons of non TypedObjects", type = OptionType.Debug)
16745
bda327903f96 Truffle: turn off class instance stamps by default.
Christian Humer <christian.humer@gmail.com>
parents: 16535
diff changeset
90 public static final OptionValue<Boolean> TruffleSplittingClassInstanceStamps = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
91
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
92 @Option(help = "Experimental. New splitting only: Whether or not splitting should be based instance comparisons of TypedObjects", type = OptionType.Debug)
16410
7f862f0ab1bc Truffle: added new experimental splitting heuristic.
Christian Humer <christian.humer@gmail.com>
parents: 16407
diff changeset
93 public static final OptionValue<Boolean> TruffleSplittingTypeInstanceStamps = new OptionValue<>(true);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
94
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
95 @Option(help = "Experimental. New splitting only: The number of calls until splitting is performed. ", type = OptionType.Debug)
16410
7f862f0ab1bc Truffle: added new experimental splitting heuristic.
Christian Humer <christian.humer@gmail.com>
parents: 16407
diff changeset
96 public static final OptionValue<Integer> TruffleSplittingStartCallCount = new OptionValue<>(3);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
97
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
98 @Option(help = "Experimental. New splitting only: Split everything aggressively. ", type = OptionType.Debug)
16410
7f862f0ab1bc Truffle: added new experimental splitting heuristic.
Christian Humer <christian.humer@gmail.com>
parents: 16407
diff changeset
99 public static final OptionValue<Boolean> TruffleSplittingAggressive = new OptionValue<>(false);
7f862f0ab1bc Truffle: added new experimental splitting heuristic.
Christian Humer <christian.humer@gmail.com>
parents: 16407
diff changeset
100
20097
e8e55ebcf069 Truffle: implement language agnostic OSR support.
Christian Humer <christian.humer@gmail.com>
parents: 20054
diff changeset
101 @Option(help = "Enable on stack replacement for Truffle loops.", type = OptionType.Debug)
e8e55ebcf069 Truffle: implement language agnostic OSR support.
Christian Humer <christian.humer@gmail.com>
parents: 20054
diff changeset
102 public static final OptionValue<Boolean> TruffleOSR = new OptionValue<>(true);
e8e55ebcf069 Truffle: implement language agnostic OSR support.
Christian Humer <christian.humer@gmail.com>
parents: 20054
diff changeset
103
e8e55ebcf069 Truffle: implement language agnostic OSR support.
Christian Humer <christian.humer@gmail.com>
parents: 20054
diff changeset
104 @Option(help = "Number of loop iterations until on-stack-replacement compilation is triggered.", type = OptionType.Debug)
e8e55ebcf069 Truffle: implement language agnostic OSR support.
Christian Humer <christian.humer@gmail.com>
parents: 20054
diff changeset
105 public static final OptionValue<Integer> TruffleOSRCompilationThreshold = new OptionValue<>(10000);
e8e55ebcf069 Truffle: implement language agnostic OSR support.
Christian Humer <christian.humer@gmail.com>
parents: 20054
diff changeset
106
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
107 @Option(help = "Disable call target splitting if tree size exceeds this limit", type = OptionType.Debug)
14079
ca92db718c74 Truffle: refined split/inlining heuristics.
Christian Humer <christian.humer@gmail.com>
parents: 14076
diff changeset
108 public static final OptionValue<Integer> TruffleSplittingMaxCalleeSize = new OptionValue<>(100);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
109
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
110 @Option(help = "Number of most recently used methods in truffle cache", type = OptionType.Debug)
14043
3bd2ad96f162 TruffleCompilerOptions: add help texts, delete old options
Andreas Woess <andreas.woess@jku.at>
parents: 13997
diff changeset
111 public static final OptionValue<Integer> TruffleMaxCompilationCacheSize = new OptionValue<>(512);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
112
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
113 @Option(help = "Enable asynchronous truffle compilation in background thread", type = OptionType.Expert)
15098
1a8cf0cf7baa Truffle: reverted accidently changed compiler options.
Christian Humer <christian.humer@gmail.com>
parents: 15091
diff changeset
114 public static final OptionValue<Boolean> TruffleBackgroundCompilation = new OptionValue<>(true);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
115
19447
ac5b08ea9a6a Make Truffle compilations multi-threaded on multi-core systems. Introduce TruffleCompilerThreads option for a manual override.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19445
diff changeset
116 @Option(help = "Manually set the number of compiler threads", type = OptionType.Expert)
ac5b08ea9a6a Make Truffle compilations multi-threaded on multi-core systems. Introduce TruffleCompilerThreads option for a manual override.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19445
diff changeset
117 public static final StableOptionValue<Integer> TruffleCompilerThreads = new StableOptionValue<>(0);
ac5b08ea9a6a Make Truffle compilations multi-threaded on multi-core systems. Introduce TruffleCompilerThreads option for a manual override.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19445
diff changeset
118
18816
972009398b30 Disable inlining across Truffle boundary by default.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18674
diff changeset
119 @Option(help = "Enable inlining across Truffle boundary", type = OptionType.Expert)
972009398b30 Disable inlining across Truffle boundary by default.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18674
diff changeset
120 public static final OptionValue<Boolean> TruffleInlineAcrossTruffleBoundary = new OptionValue<>(false);
972009398b30 Disable inlining across Truffle boundary by default.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18674
diff changeset
121
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
122 @Option(help = "", type = OptionType.Debug)
11723
9b8e3b2986c5 add two options for compilation decisions based on time passed
Christian Wirth <christian.wirth@oracle.com>
parents: 11643
diff changeset
123 public static final OptionValue<Integer> TruffleCompilationDecisionTime = new OptionValue<>(100);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
124
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
125 @Option(help = "", type = OptionType.Debug)
12478
b4b7d39cdf73 Truffle: Update for the CompilationPolicy
Christian Wirth <christian.wirth@oracle.com>
parents: 12446
diff changeset
126 public static final OptionValue<Boolean> TruffleCompilationDecisionTimePrintFail = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
127
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
128 @Option(help = "", type = OptionType.Debug)
17415
e30f38c2ee16 TruffleReturnTypeSpeculation should be a stable option
Andreas Woess <andreas.woess@jku.at>
parents: 17408
diff changeset
129 public static final OptionValue<Boolean> TruffleReturnTypeSpeculation = new StableOptionValue<>(true);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
130
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
131 @Option(help = "", type = OptionType.Debug)
16470
efbf9195dfcb Truffle: add argument type speculation
Andreas Woess <andreas.woess@jku.at>
parents: 16410
diff changeset
132 public static final OptionValue<Boolean> TruffleArgumentTypeSpeculation = new StableOptionValue<>(true);
12478
b4b7d39cdf73 Truffle: Update for the CompilationPolicy
Christian Wirth <christian.wirth@oracle.com>
parents: 12446
diff changeset
133
19441
2e91c189b0d8 Introduce option TruffleUseFrameWithoutBoxing, default to true.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19147
diff changeset
134 @Option(help = "", type = OptionType.Debug)
2e91c189b0d8 Introduce option TruffleUseFrameWithoutBoxing, default to true.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19147
diff changeset
135 public static final StableOptionValue<Boolean> TruffleUseFrameWithoutBoxing = new StableOptionValue<>(true);
2e91c189b0d8 Introduce option TruffleUseFrameWithoutBoxing, default to true.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19147
diff changeset
136
10484
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
137 // tracing
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
138 @Option(help = "Print potential performance problems", type = OptionType.Debug)
17407
c4cdee8566a4 Truffle: rename PrintTrufflePerformanceWarnings to TraceTrufflePerformanceWarnings.
Christian Humer <christian.humer@gmail.com>
parents: 17406
diff changeset
139 public static final OptionValue<Boolean> TraceTrufflePerformanceWarnings = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
140
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
141 @Option(help = "Print information for compilation results", type = OptionType.Debug)
15117
e301d31927fb made TraceTruffleCompilation option false by default
Doug Simon <doug.simon@oracle.com>
parents: 15105
diff changeset
142 public static final OptionValue<Boolean> TraceTruffleCompilation = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
143
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
144 @Option(help = "Print information for compilation queuing", type = OptionType.Debug)
10484
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
145 public static final OptionValue<Boolean> TraceTruffleCompilationDetails = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
146
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
147 @Option(help = "Print all polymorphic and generic nodes after each compilation", type = OptionType.Debug)
14076
61bc19c3dcdc Truffle: implemented new tracing flag TraceTruffleCompilationPolymorphism.
Christian Humer <christian.humer@gmail.com>
parents: 14074
diff changeset
148 public static final OptionValue<Boolean> TraceTruffleCompilationPolymorphism = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
149
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
150 @Option(help = "Print all polymorphic and generic nodes after each compilation", type = OptionType.Debug)
16085
0cdce0e2d122 Truffle: Added -G:+TraceTruffleCompilationAST flag.
Christian Humer <christian.humer@gmail.com>
parents: 15397
diff changeset
151 public static final OptionValue<Boolean> TraceTruffleCompilationAST = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
152
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
153 @Option(help = "Print the inlined call tree for each compiled method", type = OptionType.Debug)
16407
9575add7149c Truffle: new option TraceTruffleCompilationCallTree which prints the inlined call tree just before compilation.
Christian Humer <christian.humer@gmail.com>
parents: 16085
diff changeset
154 public static final OptionValue<Boolean> TraceTruffleCompilationCallTree = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
155
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
156 @Option(help = "Print the expansion trees for each compilation", type = OptionType.Debug)
13203
401e1473c546 Truffle: Implemented basic tracing of truffle compiler tree expansion (-G:+TraceTruffleExpansion, -G:+TraceTruffleExpansionSource)
Christian Humer <christian.humer@gmail.com>
parents: 12601
diff changeset
157 public static final OptionValue<Boolean> TraceTruffleExpansion = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
158
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
159 @Option(help = "Print source secions for printed expansion trees", type = OptionType.Debug)
13203
401e1473c546 Truffle: Implemented basic tracing of truffle compiler tree expansion (-G:+TraceTruffleExpansion, -G:+TraceTruffleExpansionSource)
Christian Humer <christian.humer@gmail.com>
parents: 12601
diff changeset
160 public static final OptionValue<Boolean> TraceTruffleExpansionSource = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
161
19926
575d7607f827 Truffle: implemented new -G:+PrintTruffleExpansionHistogram tool.
Christian Humer <christian.humer@oracle.com>
parents: 19789
diff changeset
162 @Option(help = "Prints a histogram of all expanded Java methods.", type = OptionType.Debug)
575d7607f827 Truffle: implemented new -G:+PrintTruffleExpansionHistogram tool.
Christian Humer <christian.humer@oracle.com>
parents: 19789
diff changeset
163 public static final OptionValue<Boolean> PrintTruffleExpansionHistogram = new OptionValue<>(false);
575d7607f827 Truffle: implemented new -G:+PrintTruffleExpansionHistogram tool.
Christian Humer <christian.humer@oracle.com>
parents: 19789
diff changeset
164
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
165 @Option(help = "Print detailed information for the Truffle compilation cache", type = OptionType.Debug)
10612
549a7568ce14 Introduce new Truffle compiler options: TruffleOperationCacheMaxNodes and TraceTruffleCompilationExceptions
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 10484
diff changeset
166 public static final OptionValue<Boolean> TraceTruffleCacheDetails = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
167
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
168 @Option(help = "Treat compilation exceptions as fatal exceptions that will exit the application", type = OptionType.Debug)
15189
19a98af07b63 Truffle: Make sure exceptions during compilation result in a bailout.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 15117
diff changeset
169 public static final OptionValue<Boolean> TruffleCompilationExceptionsAreFatal = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
170
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
171 @Option(help = "Treat compilation exceptions as thrown runtime exceptions", type = OptionType.Debug)
17078
c4b1cf38002b Truffle: TruffleCompilationExceptionsAreThrown option to get OptimizationFailedException on compiler error.
Chris Seaton <chris.seaton@oracle.com>
parents: 16746
diff changeset
172 public static final OptionValue<Boolean> TruffleCompilationExceptionsAreThrown = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
173
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
174 @Option(help = "Print information for inlining for each compilation.", type = OptionType.Debug)
13984
1c9dbfc5b510 Truffle: New more reliable inlining strategy for the Truffle runtime.
Christian Humer <christian.humer@gmail.com>
parents: 13892
diff changeset
175 public static final OptionValue<Boolean> TraceTruffleInlining = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
176
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
177 @Option(help = "Print information for each splitted call site.", type = OptionType.Debug)
14074
ed4b5d1ef667 Truffle: Added separate option to trace splitting.
Christian Humer <christian.humer@gmail.com>
parents: 14043
diff changeset
178 public static final OptionValue<Boolean> TraceTruffleSplitting = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
179
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
180 @Option(help = "Print stack trace on transfer to interpreter", type = OptionType.Debug)
16535
ada0a7729b6f Truffle: introduce debug option to print the stack trace when transferring to the interpreter
Andreas Woess <andreas.woess@jku.at>
parents: 16470
diff changeset
181 public static final OptionValue<Boolean> TraceTruffleTransferToInterpreter = new StableOptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
182
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
183 @Option(help = "Print stack trace on assumption invalidation", type = OptionType.Debug)
16712
2b7e583cfe67 Truffle: add TraceTruffleAssumptions option for debugging installed code invalidations due to assumptions
Andreas Woess <andreas.woess@jku.at>
parents: 16535
diff changeset
184 public static final OptionValue<Boolean> TraceTruffleAssumptions = new StableOptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
185
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
186 @Option(help = "Number of stack trace elements printed by TraceTruffleTransferToInterpreter and TraceTruffleAssumptions", type = OptionType.Debug)
17416
f7ba2423fbc3 Truffle: make TraceTruffleTransferToInterpreter and TraceTruffleAssumptions stack trace limit configurable
Andreas Woess <andreas.woess@jku.at>
parents: 17415
diff changeset
187 public static final OptionValue<Integer> TraceTruffleStackTraceLimit = new OptionValue<>(20);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
188
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
189 @Option(help = "Print a summary of execution counts for all executed CallTargets. Introduces counter overhead for each call.", type = OptionType.Debug)
10844
3cf5f371dc9f Truffle: print inlined call target and rename profiling option.
Andreas Woess <andreas.woess@jku.at>
parents: 10827
diff changeset
190 public static final OptionValue<Boolean> TruffleCallTargetProfiling = new StableOptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
191
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
192 @Option(help = "Print Truffle compilation statistics at the end of a run.", type = OptionType.Debug)
18213
c489edfac1c7 Truffle: implemented new flag -G:+TruffleCompilationStatistics
Christian Humer <christian.humer@gmail.com>
parents: 17416
diff changeset
193 public static final OptionValue<Boolean> TruffleCompilationStatistics = new OptionValue<>(false);
18674
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
194
ecb9d0cedbab First draft of option classification.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18339
diff changeset
195 @Option(help = "Print additional more verbose Truffle compilation statistics at the end of a run.", type = OptionType.Debug)
18213
c489edfac1c7 Truffle: implemented new flag -G:+TruffleCompilationStatistics
Christian Humer <christian.humer@gmail.com>
parents: 17416
diff changeset
196 public static final OptionValue<Boolean> TruffleCompilationStatisticDetails = new OptionValue<>(false);
10484
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
197 // @formatter:on
0097fb11c16f Add basic version of Graal's Truffle runtime.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
198 }