Mercurial > hg > graal-compiler
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 |
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 } |