annotate graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java @ 8129:0106de66dc51

Disable frame omission and enable allocation of rbp instead.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Wed, 06 Mar 2013 16:38:49 +0100
parents 29c2103630ef
children 7a81fbcd67bb f5e26f69f164
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1 /*
4255
1e62f742f0b3 Test how trace-code wrapped into an assert looks like.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 4213
diff changeset
2 * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
4 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
8 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
13 * accompanied this code).
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
14 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
18 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
21 * questions.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
22 */
6525
2c913b643422 rename packages in graal.phases to match project name
Doug Simon <doug.simon@oracle.com>
parents: 6522
diff changeset
23 package com.oracle.graal.phases;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
24
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
25 /**
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
26 * This class encapsulates options that control the behavior of the Graal compiler.
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7522
diff changeset
27 *
5056
2f2c6347fce4 comments cleanup/retagging
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5042
diff changeset
28 * (thomaswue) WARNING: Fields of this class are treated as final by Graal.
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
29 */
7522
4cc0efe5cffe disabled auto-formatting of manually formatted code
Doug Simon <doug.simon@oracle.com>
parents: 7497
diff changeset
30 // @formatter:off
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
31 public final class GraalOptions {
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
32
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
33 // Checkstyle: stop
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
34 private static final boolean ____ = false;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
35 // Checkstyle: resume
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
36
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
37 public static int Threads = 4;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
38
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
39 // inlining settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
40 public static boolean Inline = true;
7388
599ea4fcdb6d added flag AlwaysInlineIntrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7386
diff changeset
41 public static boolean AlwaysInlineIntrinsics = ____;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
42 public static boolean Intrinsify = true;
5114
dad1ac9dba7d finished first implementation of disabling runtime feedback selectively based on deoptimization history
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5105
diff changeset
43 static boolean InlineMonomorphicCalls = true;
dad1ac9dba7d finished first implementation of disabling runtime feedback selectively based on deoptimization history
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5105
diff changeset
44 static boolean InlinePolymorphicCalls = true;
dad1ac9dba7d finished first implementation of disabling runtime feedback selectively based on deoptimization history
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5105
diff changeset
45 static boolean InlineMegamorphicCalls = ____;
7684
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
46 public static int MaximumDesiredSize = 5000;
4564
8fc6920e064b avoid recursive inlining, escape analysis does no longer restart inlining with level 0, bugfixes
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4563
diff changeset
47 public static int MaximumRecursiveInlining = 1;
4605
f0569f6336f7 disabled megamorphic calls, trying an inlining policy where invokes within loops do not have any advantages
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4604
diff changeset
48 public static boolean LimitInlinedProbability = ____;
7684
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
49 public static boolean LimitInlinedRelevance = true;
4528
e6e14d25e608 added two inlining policies for comparison
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4526
diff changeset
50 public static float BoostInliningForEscapeAnalysis = 2f;
7684
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
51 public static float RelevanceCapForInlining = 1f;
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
52
7694
57b3e9faac4a code cleanup
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7689
diff changeset
53 public static int TrivialBytecodeSize = 10;
7689
ed51e7237e94 extracted TODOs as issues
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7685
diff changeset
54 public static int NormalBytecodeSize = 150;
7684
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
55 public static int MaximumBytecodeSize = 500;
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
56 public static int TrivialComplexity = 10;
7689
ed51e7237e94 extracted TODOs as issues
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7685
diff changeset
57 public static int NormalComplexity = 60;
7684
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
58 public static int MaximumComplexity = 400;
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
59 public static int TrivialCompiledCodeSize = 150;
7689
ed51e7237e94 extracted TODOs as issues
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7685
diff changeset
60 public static int NormalCompiledCodeSize = 750;
7684
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
61 public static int MaximumCompiledCodeSize = 4000;
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
62 public static int SmallCompiledCodeSize = 1000;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
63
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
64 // escape analysis settings
6952
Doug Simon <doug.simon@oracle.com>
parents: 6950
diff changeset
65 public static boolean PartialEscapeAnalysis = true;
6710
6db6881c1270 add Virtualizable and VirtualizerTool, refactor PEA to use it
Lukas Stadler <lukas.stadler@jku.at>
parents: 6685
diff changeset
66 public static boolean EscapeAnalysisHistogram = ____;
6657
768793150bcd more PEA refactoring, multiple iterations
Lukas Stadler <lukas.stadler@jku.at>
parents: 6550
diff changeset
67 public static int EscapeAnalysisIterations = 2;
768793150bcd more PEA refactoring, multiple iterations
Lukas Stadler <lukas.stadler@jku.at>
parents: 6550
diff changeset
68 public static String EscapeAnalyzeOnly = null;
7394
94f032472c28 changed PEA interface:
Lukas Stadler <lukas.stadler@jku.at>
parents: 7393
diff changeset
69 public static int MaximumEscapeAnalysisArrayLength = 32;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
70
6657
768793150bcd more PEA refactoring, multiple iterations
Lukas Stadler <lukas.stadler@jku.at>
parents: 6550
diff changeset
71 public static double TailDuplicationProbability = 0.5;
768793150bcd more PEA refactoring, multiple iterations
Lukas Stadler <lukas.stadler@jku.at>
parents: 6550
diff changeset
72 public static int TailDuplicationTrivialSize = 1;
5786
f69a406355b2 new tail duplication phase
Lukas Stadler <lukas.stadler@jku.at>
parents: 5772
diff changeset
73
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
74 // absolute probability analysis
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
75 public static boolean ProbabilityAnalysis = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
76
4551
a7a16015e47f changed profiling maturity so that profiling information is used more likely
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4541
diff changeset
77 // profiling information
5126
43d5ae1051f7 added better debug output when an optimistic deoptimization is disabled
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5118
diff changeset
78 public static int DeoptsToDisableOptimisticOptimization = 40;
4997
0c9196f57172 use profiling information whenever possible
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4991
diff changeset
79 public static int MatureExecutionsBranch = 1;
0c9196f57172 use profiling information whenever possible
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4991
diff changeset
80 public static int MatureExecutionsPerSwitchCase = 1;
0c9196f57172 use profiling information whenever possible
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4991
diff changeset
81 public static int MatureExecutionsTypeProfile = 1;
4551
a7a16015e47f changed profiling maturity so that profiling information is used more likely
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4541
diff changeset
82
5176
af59b4dfc9e4 compilation queue changes:
Lukas Stadler <lukas.stadler@jku.at>
parents: 5156
diff changeset
83 // comilation queue
5183
e1e681a5558e fix PriorityQueue, enable PriorityQueue and CacheGraphs
Lukas Stadler <lukas.stadler@jku.at>
parents: 5180
diff changeset
84 public static int TimedBootstrap = -1;
5336
f536a459c2d3 re-enable graph caching and the priority compilation queue
Lukas Stadler <lukas.stadler@jku.at>
parents: 5334
diff changeset
85 public static boolean PriorityCompileQueue = true;
5176
af59b4dfc9e4 compilation queue changes:
Lukas Stadler <lukas.stadler@jku.at>
parents: 5156
diff changeset
86 public static int SlowQueueCutoff = 100000;
5178
5715abb8e29a benchmark: graal compilation policy + priority queue + dynamic comp thread priority
Lukas Stadler <lukas.stadler@jku.at>
parents: 5177
diff changeset
87 public static boolean SlowCompileThreads = ____;
5180
6ab0cd9909b1 turn off experimental options (graph caching, compilation queue changes)
Lukas Stadler <lukas.stadler@jku.at>
parents: 5179
diff changeset
88 public static boolean DynamicCompilePriority = ____;
5176
af59b4dfc9e4 compilation queue changes:
Lukas Stadler <lukas.stadler@jku.at>
parents: 5156
diff changeset
89
5177
a26b6248d398 added graph caching (-G:+CacheGraphs)
Lukas Stadler <lukas.stadler@jku.at>
parents: 5176
diff changeset
90 // graph caching
5336
f536a459c2d3 re-enable graph caching and the priority compilation queue
Lukas Stadler <lukas.stadler@jku.at>
parents: 5334
diff changeset
91 public static boolean CacheGraphs = true;
5177
a26b6248d398 added graph caching (-G:+CacheGraphs)
Lukas Stadler <lukas.stadler@jku.at>
parents: 5176
diff changeset
92 public static int GraphCacheSize = 1000;
a26b6248d398 added graph caching (-G:+CacheGraphs)
Lukas Stadler <lukas.stadler@jku.at>
parents: 5176
diff changeset
93 public static boolean PrintGraphCache = ____;
a26b6248d398 added graph caching (-G:+CacheGraphs)
Lukas Stadler <lukas.stadler@jku.at>
parents: 5176
diff changeset
94
5741
c84c75339af1 Work on loop unswitching, things look ok, still disabled until FloatingRead preserves loop-closed form
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5732
diff changeset
95 //loop transform settings TODO (gd) tune
5745
11ef22975bba Delete unused LoopTransformPhase
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5741
diff changeset
96 public static boolean LoopPeeling = true;
5692
41149ce1422f Add div test, group loop options in GraalOptions
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5675
diff changeset
97 public static boolean ReassociateInvariants = true;
41149ce1422f Add div test, group loop options in GraalOptions
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5675
diff changeset
98 public static boolean FullUnroll = true;
6309
6f8b6fc03c96 Add a maximum number of unswitching per loop
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 6303
diff changeset
99 public static boolean LoopUnswitch = true;
7491
2af290f59185 Increase default thresholds in full unrolling policy
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 7393
diff changeset
100 public static int FullUnrollMaxNodes = 300;
2af290f59185 Increase default thresholds in full unrolling policy
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 7393
diff changeset
101 public static int ExactFullUnrollMaxNodes = 1200;
5745
11ef22975bba Delete unused LoopTransformPhase
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5741
diff changeset
102 public static float MinimumPeelProbability = 0.35f;
6309
6f8b6fc03c96 Add a maximum number of unswitching per loop
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 6303
diff changeset
103 public static int LoopMaxUnswitch = 3;
5732
e1d5c642d022 Started to draft a loop unswitching policy
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5722
diff changeset
104 public static int LoopUnswitchMaxIncrease = 50;
e1d5c642d022 Started to draft a loop unswitching policy
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5722
diff changeset
105 public static int LoopUnswitchUncertaintyBoost = 5;
5216
b64933dc4830 Peeling loop depending on their entry probability
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5215
diff changeset
106
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
107 // debugging settings
7739
0bf1c1c658c2 merge defaults from setDefaultOptions() into GraalOptions
Roland Schatz <roland.schatz@oracle.com>
parents: 7694
diff changeset
108 public static int MethodEndBreakpointGuards = 2;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
109 public static boolean ZapStackOnMethodEntry = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
110 public static boolean DeoptALot = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
111 public static boolean VerifyPhases = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
112
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
113 public static String PrintFilter = null;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
114
4357
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
115 // Debug settings:
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
116 public static boolean Debug = true;
7318
323ece2b012b Refactor debug environment creation.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 7247
diff changeset
117 public static boolean DebugSnippets = false;
5134
4eb9895d9afe Refactoring of the debug framework. Move compiler thread implementation to its own file.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 5087
diff changeset
118 public static boolean PerThreadDebugValues = ____;
4553
7d0d849abf80 added option to summarize debug values
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4551
diff changeset
119 public static boolean SummarizeDebugValues = ____;
5134
4eb9895d9afe Refactoring of the debug framework. Move compiler thread implementation to its own file.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 5087
diff changeset
120 public static boolean SummarizePerPhase = ____;
7247
1706be855f0e Use ThreadMXBean to get CPU time instead of Wallclock time for Timers if possible
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 7226
diff changeset
121 public static String Dump = null;
1706be855f0e Use ThreadMXBean to get CPU time instead of Wallclock time for Timers if possible
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 7226
diff changeset
122 public static String Meter = null;
1706be855f0e Use ThreadMXBean to get CPU time instead of Wallclock time for Timers if possible
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 7226
diff changeset
123 public static String Time = null;
1706be855f0e Use ThreadMXBean to get CPU time instead of Wallclock time for Timers if possible
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 7226
diff changeset
124 public static String Log = null;
1706be855f0e Use ThreadMXBean to get CPU time instead of Wallclock time for Timers if possible
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 7226
diff changeset
125 public static String LogFile = null;
1706be855f0e Use ThreadMXBean to get CPU time instead of Wallclock time for Timers if possible
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 7226
diff changeset
126 public static String MethodFilter = null;
5145
19a3ae027c56 Use DumpOnError flag, false by default
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5138
diff changeset
127 public static boolean DumpOnError = ____;
4357
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
128
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
129 // Ideal graph visualizer output settings
6685
dbe065c2c5bf Change default graph dumping to binary and no CFG, fix name template for RuntimeCall
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 6671
diff changeset
130 public static boolean PrintBinaryGraphs = true;
dbe065c2c5bf Change default graph dumping to binary and no CFG, fix name template for RuntimeCall
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 6671
diff changeset
131 public static boolean PrintCFG = ____;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
132 public static boolean PrintIdealGraphFile = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
133 public static String PrintIdealGraphAddress = "127.0.0.1";
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
134 public static int PrintIdealGraphPort = 4444;
5810
bc237d8b6f99 Add binary graph dumping to compiler (-G:+PrintBinaryGraphs)
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5745
diff changeset
135 public static int PrintBinaryGraphPort = 4445;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
136
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
137 // Other printing settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
138 public static boolean PrintQueue = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
139 public static boolean PrintCompilation = ____;
5040
4d6e5ddf70e5 added option to print the profiling information
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5021
diff changeset
140 public static boolean PrintProfilingInformation = ____;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
141 public static boolean PrintIRWithLIR = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
142 public static boolean PrintCodeBytes = ____;
5201
891399c54706 Add a PrintBailout option
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5184
diff changeset
143 public static boolean PrintBailout = ____;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
144 public static int TraceLinearScanLevel = 0;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
145 public static int TraceLIRGeneratorLevel = 0;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
146 public static boolean TraceEscapeAnalysis = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
147 public static int TraceBytecodeParserLevel = 0;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
148 public static boolean ExitVMOnBailout = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
149 public static boolean ExitVMOnException = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
150
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
151 // Code generator settings
7877
e56dda646972 rename CheckCastElimination option to ConditionalElimination
Lukas Stadler <lukas.stadler@jku.at>
parents: 7871
diff changeset
152 public static boolean ConditionalElimination = true;
5389
612b4f099362 disable frame state culling
Lukas Stadler <lukas.stadler@jku.at>
parents: 5385
diff changeset
153 public static boolean CullFrameStates = ____;
5105
95b8a32a7cc3 preparations to avoid endless recompilations because of not updated profiling information
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5061
diff changeset
154 public static boolean UseProfilingInformation = true;
5114
dad1ac9dba7d finished first implementation of disabling runtime feedback selectively based on deoptimization history
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5105
diff changeset
155 static boolean RemoveNeverExecutedCode = true;
dad1ac9dba7d finished first implementation of disabling runtime feedback selectively based on deoptimization history
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5105
diff changeset
156 static boolean UseExceptionProbability = true;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
157 public static boolean AllowExplicitExceptionChecks = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
158 public static boolean OmitHotExceptionStacktrace = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
159 public static boolean GenSafepoints = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
160 public static boolean GenLoopSafepoints = true;
5114
dad1ac9dba7d finished first implementation of disabling runtime feedback selectively based on deoptimization history
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5105
diff changeset
161 static boolean UseTypeCheckHints = true;
5844
a432e6d43aa1 fixed bugs related to -G:+InlineVTableStubs and re-enabled it by default
Doug Simon <doug.simon@oracle.com>
parents: 5843
diff changeset
162 public static boolean InlineVTableStubs = true;
5004
2792bcd9a0ce disable vtable stub inlining
Lukas Stadler <lukas.stadler@jku.at>
parents: 5003
diff changeset
163 public static boolean AlwaysInlineVTableStubs = ____;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
164 public static boolean GenAssertionCode = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
165 public static boolean AlignCallsForPatching = true;
7739
0bf1c1c658c2 merge defaults from setDefaultOptions() into GraalOptions
Roland Schatz <roland.schatz@oracle.com>
parents: 7694
diff changeset
166 public static boolean ResolveClassBeforeStaticInvoke = ____;
8129
0106de66dc51 Disable frame omission and enable allocation of rbp instead.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 7937
diff changeset
167 public static boolean CanOmitFrame = false;
7154
5d0bb7d52783 changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
Doug Simon <doug.simon@oracle.com>
parents: 7108
diff changeset
168 public static int SafepointPollOffset = 256;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
169
7871
886990f21773 memory-aware scheduling phase
Lukas Stadler <lukas.stadler@jku.at>
parents: 7818
diff changeset
170 public static boolean MemoryAwareScheduling = true;
886990f21773 memory-aware scheduling phase
Lukas Stadler <lukas.stadler@jku.at>
parents: 7818
diff changeset
171
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
172 // Translating tableswitch instructions
7063
0d7dfa5b79e8 merged inlining and intrinsification phases
Christian Haeubl <haeubl@ssw.jku.at>
parents: 6710
diff changeset
173 public static int MinimumJumpTableSize = 5;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
174 public static int RangeTestsSwitchDensity = 5;
5698
764db9ada24f rework of switch operations: unify lookup- and tableswitch, introduce switch lir instructions
Lukas Stadler <lukas.stadler@jku.at>
parents: 5696
diff changeset
175 public static double MinTableSwitchDensity = 0.5;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
176
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
177 public static boolean DetailedAsserts = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
178
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
179 // Runtime settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
180 public static int StackShadowPages = 2;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
181
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
182 public static boolean SupportJsrBytecodes = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
183
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
184 public static boolean OptAssumptions = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
185 public static boolean OptReadElimination = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
186 public static boolean OptCanonicalizer = true;
6670
81ad987772f6 Cleanup GraalOption : removed defunct options
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 6657
diff changeset
187 public static boolean OptScheduleOutOfLoops = true;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
188 public static boolean OptEliminateGuards = true;
7937
29c2103630ef New strategy for inserting safepoints - always insert in loops but avoid in leaf methods.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 7936
diff changeset
189 public static boolean OptEliminateSafepoints = true;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
190 public static boolean OptImplicitNullChecks = true;
5029
74f47ef37394 Fix and enable liveness analysis to prune unnecessary frame state entries
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 5026
diff changeset
191 public static boolean OptLivenessAnalysis = true;
5215
ae367987a18c Add options for OptLoopTransform and OptSafepointElimination
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5201
diff changeset
192 public static boolean OptLoopTransform = true;
6670
81ad987772f6 Cleanup GraalOption : removed defunct options
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 6657
diff changeset
193 public static boolean OptFloatingReads = true;
5786
f69a406355b2 new tail duplication phase
Lukas Stadler <lukas.stadler@jku.at>
parents: 5772
diff changeset
194 public static boolean OptTailDuplication = true;
6671
bffb038abbe6 Add option for EliminatePartiallyRedundantGuards, eliminate at splits after IterativeConditionalElimination
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 6670
diff changeset
195 public static boolean OptEliminatePartiallyRedundantGuards = true;
7386
707e9cca11de fixed HotSpot windows build
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7247
diff changeset
196 public static boolean OptFilterProfiledTypes = true;
7684
bbf97d6688d3 cleanup for the inlining policies
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7393
diff changeset
197 public static boolean OptDevirtualizeInvokesOptimistically = true;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
198
7220
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7108
diff changeset
199 // Intrinsification settings
7769
41292de7ac48 disable Object.clone intrinsification
Lukas Stadler <lukas.stadler@jku.at>
parents: 7764
diff changeset
200 public static boolean IntrinsifyObjectClone = ____;
7223
e2ea829fafd9 use CHA more frequently for inlining
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7220
diff changeset
201 public static boolean IntrinsifyArrayCopy = true;
7220
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7108
diff changeset
202 public static boolean IntrinsifyObjectMethods = true;
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7108
diff changeset
203 public static boolean IntrinsifySystemMethods = true;
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7108
diff changeset
204 public static boolean IntrinsifyClassMethods = true;
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7108
diff changeset
205 public static boolean IntrinsifyThreadMethods = true;
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7108
diff changeset
206 public static boolean IntrinsifyUnsafeMethods = true;
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7108
diff changeset
207 public static boolean IntrinsifyMathMethods = true;
7384
d0fbdf2f7a0e added com.sun.crypto.provider.CipherBlockChaining intrinsifications
Doug Simon <doug.simon@oracle.com>
parents: 7366
diff changeset
208 public static boolean IntrinsifyAESMethods = true;
7220
fcae6d960acd added more compiler intrinsics
Christian Haeubl <haeubl@ssw.jku.at>
parents: 7108
diff changeset
209
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
210 /**
5772
2f7a03583a32 added counters for code paths through the new object snippets
Doug Simon <doug.simon@oracle.com>
parents: 5760
diff changeset
211 * Counts the various paths taken through snippets.
5330
678f31e9724e added -G:+CheckcastCounters to profile the paths taken through a compiled checkcast
Doug Simon <doug.simon@oracle.com>
parents: 5319
diff changeset
212 */
5772
2f7a03583a32 added counters for code paths through the new object snippets
Doug Simon <doug.simon@oracle.com>
parents: 5760
diff changeset
213 public static boolean SnippetCounters = false;
5330
678f31e9724e added -G:+CheckcastCounters to profile the paths taken through a compiled checkcast
Doug Simon <doug.simon@oracle.com>
parents: 5319
diff changeset
214
5343
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
215 /**
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
216 * If the probability that a checkcast will hit one the profiled types (up to {@link #CheckcastMaxHints})
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
217 * is below this value, the checkcast will be compiled without hints.
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
218 */
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
219 public static double CheckcastMinHintHitProbability = 0.5;
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
220
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
221 /**
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
222 * The maximum number of hint types that will be used when compiling a checkcast for which
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
223 * profiling information is available. Note that {@link #CheckcastMinHintHitProbability}
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
224 * also influences whether hints are used.
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
225 */
5331
6e346160f104 replaced magic constants with GraalOptions.CheckcastMaxHints and GraalOptions.InstanceOfMaxHints
Doug Simon <doug.simon@oracle.com>
parents: 5330
diff changeset
226 public static int CheckcastMaxHints = 2;
5343
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
227
5369
2e9a5365dfb0 moved conversion of type profiles into hints for type check instructions from front end to lowering phase
Doug Simon <doug.simon@oracle.com>
parents: 5346
diff changeset
228 /**
2e9a5365dfb0 moved conversion of type profiles into hints for type check instructions from front end to lowering phase
Doug Simon <doug.simon@oracle.com>
parents: 5346
diff changeset
229 * @see #CheckcastMinHintHitProbability
2e9a5365dfb0 moved conversion of type profiles into hints for type check instructions from front end to lowering phase
Doug Simon <doug.simon@oracle.com>
parents: 5346
diff changeset
230 */
2e9a5365dfb0 moved conversion of type profiles into hints for type check instructions from front end to lowering phase
Doug Simon <doug.simon@oracle.com>
parents: 5346
diff changeset
231 public static double InstanceOfMinHintHitProbability = 0.5;
2e9a5365dfb0 moved conversion of type profiles into hints for type check instructions from front end to lowering phase
Doug Simon <doug.simon@oracle.com>
parents: 5346
diff changeset
232
2e9a5365dfb0 moved conversion of type profiles into hints for type check instructions from front end to lowering phase
Doug Simon <doug.simon@oracle.com>
parents: 5346
diff changeset
233 /**
2e9a5365dfb0 moved conversion of type profiles into hints for type check instructions from front end to lowering phase
Doug Simon <doug.simon@oracle.com>
parents: 5346
diff changeset
234 * @see #CheckcastMaxHints
2e9a5365dfb0 moved conversion of type profiles into hints for type check instructions from front end to lowering phase
Doug Simon <doug.simon@oracle.com>
parents: 5346
diff changeset
235 */
6670
81ad987772f6 Cleanup GraalOption : removed defunct options
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 6657
diff changeset
236 public static int InstanceOfMaxHints = 2;
5331
6e346160f104 replaced magic constants with GraalOptions.CheckcastMaxHints and GraalOptions.InstanceOfMaxHints
Doug Simon <doug.simon@oracle.com>
parents: 5330
diff changeset
237
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
238 static {
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
239 // turn detailed assertions on when the general assertions are on (misusing the assert keyword for this)
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
240 assert (DetailedAsserts = true) == true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
241 }
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
242 }