annotate graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java @ 5760:87e8baf5447c

added snippets for lowering array creation and initialization (in NewObjectSnippets) made it possible to use node intrinsics with arguments that may only be constant when a snippet template is created rename: NewTypeArrayNode -> NewPrimitiveArrayNode removed HotSpotVMConfig.getArrayOffset() - Kind.arrayBaseOffset() is used instead renamed field prototypeHeader to initialMarkWord in HotSpotResolvedJavaType rename: NewInstanceSnippets -> NewObjectSnippets renamed node intrinsics in DirectObjectStoreNode to include the type of the value being stored (to avoid accidental misuse) extended WordTypeRewriterPhase such that ObjectEqualsNodes are replaced with IntegerEqualsNodes when the values being compared are words (which allows '==' and '!=' to be used between Word values in Java source code)
author Doug Simon <doug.simon@oracle.com>
date Tue, 03 Jul 2012 23:49:01 +0200
parents 11ef22975bba
children 2f7a03583a32
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 */
5060
4ed4295ce15f Update import statements.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 5059
diff changeset
23 package com.oracle.graal.compiler;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
24
5346
4c3d953f8131 added mechanism (enabled by -G:PICache and -G:PiFilter) for saving/loading method profiling info to/from disk
Doug Simon <doug.simon@oracle.com>
parents: 5343
diff changeset
25
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
26 /**
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
27 * This class encapsulates options that control the behavior of the Graal compiler.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
28 *
5056
2f2c6347fce4 comments cleanup/retagging
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5042
diff changeset
29 * (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
30 */
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;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
41 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
42 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
43 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
44 static boolean InlineMegamorphicCalls = ____;
4598
6a44a26ed9e6 set default inlining policy to the greedy one
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4594
diff changeset
45 public static int InliningPolicy = 4;
6a44a26ed9e6 set default inlining policy to the greedy one
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4594
diff changeset
46 public static int WeightComputationPolicy = 2;
4699
83e7065e9c75 adjust inlining policy's maximum trivial size
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4698
diff changeset
47 public static int MaximumTrivialSize = 10;
4529
fc78ad20ec38 fixed exception framestate
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4528
diff changeset
48 public static int MaximumInlineLevel = 30;
4701
44b122d06e3a reduce maximum desired size
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4700
diff changeset
49 public static int MaximumDesiredSize = 3000;
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
50 public static int MaximumRecursiveInlining = 1;
4700
3ab34c33d690 increase small compiled code size
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4699
diff changeset
51 public static int SmallCompiledCodeSize = 2000;
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
52 public static boolean LimitInlinedProbability = ____;
4528
e6e14d25e608 added two inlining policies for comparison
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4526
diff changeset
53 // WeightBasedInliningPolicy (0)
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
54 public static boolean ParseBeforeInlining = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
55 public static float InliningSizePenaltyExp = 20;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
56 public static float MaximumInlineWeight = 1.25f;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
57 public static float InliningSizePenalty = 1;
4591
33f181ad79d5 changed DynamicSizeBasedInliningPolicy to use log(probability) for frequently executed loops, added check for SmallCompiledCodeSize to WeightBasedInliningPolicy.
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4569
diff changeset
58 // StaticSizeBasedInliningPolicy (1), MinimumCodeSizeBasedInlining (2),
4699
83e7065e9c75 adjust inlining policy's maximum trivial size
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4698
diff changeset
59 // DynamicSizeBasedInliningPolicy (3)
4528
e6e14d25e608 added two inlining policies for comparison
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4526
diff changeset
60 public static int MaximumInlineSize = 35;
4699
83e7065e9c75 adjust inlining policy's maximum trivial size
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4698
diff changeset
61 // GreedySizeBasedInlining (4)
5021
a7c079d5dc87 try to reduce MaximumGreedyInlineSize significantly
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5005
diff changeset
62 public static int MaximumGreedyInlineSize = 100;
a7c079d5dc87 try to reduce MaximumGreedyInlineSize significantly
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5005
diff changeset
63 public static int InliningBonusPerTransferredValue = 10;
4699
83e7065e9c75 adjust inlining policy's maximum trivial size
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4698
diff changeset
64 // Common options for inlining policies 1 to 4
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
65 public static float NestedInliningSizeRatio = 1f;
4528
e6e14d25e608 added two inlining policies for comparison
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4526
diff changeset
66 public static float BoostInliningForEscapeAnalysis = 2f;
e6e14d25e608 added two inlining policies for comparison
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4526
diff changeset
67 public static float ProbabilityCapForInlining = 1f;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
68
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
69 // escape analysis settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
70 public static boolean EscapeAnalysis = true;
4706
a59fe7906f0b additional LoopFrequencyPropagationPolicy versions
Lukas Stadler <lukas.stadler@jku.at>
parents: 4703
diff changeset
71 public static int ForcedInlineEscapeWeight = 10;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
72 public static boolean PrintEscapeAnalysis = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
73
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;
5005
c2ebd3d559f7 fixed probabilities when polymorphic inlining is used
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5004
diff changeset
76 public static int LoopFrequencyPropagationPolicy = -2;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
77
4551
a7a16015e47f changed profiling maturity so that profiling information is used more likely
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4541
diff changeset
78 // profiling information
5126
43d5ae1051f7 added better debug output when an optimistic deoptimization is disabled
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5118
diff changeset
79 public static int DeoptsToDisableOptimisticOptimization = 40;
5116
312b18b9cc3a added output when optimistic optimizations are disabled
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5114
diff changeset
80 public static boolean PrintDisabledOptimisticOptimizations = true;
4997
0c9196f57172 use profiling information whenever possible
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4991
diff changeset
81 public static int MatureExecutionsBranch = 1;
0c9196f57172 use profiling information whenever possible
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4991
diff changeset
82 public static int MatureExecutionsPerSwitchCase = 1;
0c9196f57172 use profiling information whenever possible
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4991
diff changeset
83 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
84
5176
af59b4dfc9e4 compilation queue changes:
Lukas Stadler <lukas.stadler@jku.at>
parents: 5156
diff changeset
85 // comilation queue
5183
e1e681a5558e fix PriorityQueue, enable PriorityQueue and CacheGraphs
Lukas Stadler <lukas.stadler@jku.at>
parents: 5180
diff changeset
86 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
87 public static boolean PriorityCompileQueue = true;
5176
af59b4dfc9e4 compilation queue changes:
Lukas Stadler <lukas.stadler@jku.at>
parents: 5156
diff changeset
88 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
89 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
90 public static boolean DynamicCompilePriority = ____;
5176
af59b4dfc9e4 compilation queue changes:
Lukas Stadler <lukas.stadler@jku.at>
parents: 5156
diff changeset
91
5177
a26b6248d398 added graph caching (-G:+CacheGraphs)
Lukas Stadler <lukas.stadler@jku.at>
parents: 5176
diff changeset
92 // graph caching
5336
f536a459c2d3 re-enable graph caching and the priority compilation queue
Lukas Stadler <lukas.stadler@jku.at>
parents: 5334
diff changeset
93 public static boolean CacheGraphs = true;
5177
a26b6248d398 added graph caching (-G:+CacheGraphs)
Lukas Stadler <lukas.stadler@jku.at>
parents: 5176
diff changeset
94 public static int GraphCacheSize = 1000;
a26b6248d398 added graph caching (-G:+CacheGraphs)
Lukas Stadler <lukas.stadler@jku.at>
parents: 5176
diff changeset
95 public static boolean PrintGraphCache = ____;
a26b6248d398 added graph caching (-G:+CacheGraphs)
Lukas Stadler <lukas.stadler@jku.at>
parents: 5176
diff changeset
96
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
97 //rematerialize settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
98 public static float MinimumUsageProbability = 0.95f;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
99
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
100 //loop transform settings TODO (gd) tune
5745
11ef22975bba Delete unused LoopTransformPhase
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5741
diff changeset
101 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
102 public static boolean ReassociateInvariants = true;
41149ce1422f Add div test, group loop options in GraalOptions
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5675
diff changeset
103 public static boolean FullUnroll = true;
5745
11ef22975bba Delete unused LoopTransformPhase
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5741
diff changeset
104 public static boolean LoopUnswitch = ____;
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
105 public static int FullUnrollMaxNodes = 150;
5745
11ef22975bba Delete unused LoopTransformPhase
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5741
diff changeset
106 public static float MinimumPeelProbability = 0.35f;
5732
e1d5c642d022 Started to draft a loop unswitching policy
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5722
diff changeset
107 public static int LoopUnswitchMaxIncrease = 50;
e1d5c642d022 Started to draft a loop unswitching policy
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5722
diff changeset
108 public static int LoopUnswitchUncertaintyBoost = 5;
5216
b64933dc4830 Peeling loop depending on their entry probability
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5215
diff changeset
109
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
110 // debugging settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
111 public static int MethodEndBreakpointGuards = 0;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
112 public static boolean ZapStackOnMethodEntry = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
113 public static boolean StressLinearScan = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
114 public static boolean DeoptALot = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
115 public static boolean VerifyPhases = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
116 public static boolean CreateDeoptInfo = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
117
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
118 public static String PrintFilter = null;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
119
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
120 // printing settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
121 public static boolean PrintLIR = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
122 public static boolean PrintCFGToFile = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
123
4357
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
124 // Debug settings:
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
125 public static boolean Debug = true;
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
126 public static boolean PerThreadDebugValues = ____;
4553
7d0d849abf80 added option to summarize debug values
Christian Haeubl <christian.haeubl@oracle.com>
parents: 4551
diff changeset
127 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
128 public static boolean SummarizePerPhase = ____;
4357
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
129 public static String Dump = null;
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
130 public static String Meter = null;
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
131 public static String Time = null;
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
132 public static String Log = null;
5268
b59e32ea3761 enable graph caching and priority compilation queue
Lukas Stadler <lukas.stadler@jku.at>
parents: 5216
diff changeset
133 public static String LogFile = null;
4357
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
134 public static String MethodFilter = null;
5145
19a3ae027c56 Use DumpOnError flag, false by default
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5138
diff changeset
135 public static boolean DumpOnError = ____;
4357
719ac1d92a52 More work on debug framework.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 4353
diff changeset
136
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
137 // Ideal graph visualizer output settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
138 public static int PlotLevel = 3;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
139 public static int PrintIdealGraphLevel = 0;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
140 public static boolean PrintIdealGraphFile = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
141 public static String PrintIdealGraphAddress = "127.0.0.1";
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
142 public static int PrintIdealGraphPort = 4444;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
143
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
144 // Other printing settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
145 public static boolean PrintQueue = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
146 public static boolean PrintCompilation = ____;
5040
4d6e5ddf70e5 added option to print the profiling information
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5021
diff changeset
147 public static boolean PrintProfilingInformation = ____;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
148 public static boolean PrintXirTemplates = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
149 public static boolean PrintIRWithLIR = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
150 public static boolean PrintAssembly = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
151 public static boolean PrintCodeBytes = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
152 public static int PrintAssemblyBytesPerLine = 16;
5201
891399c54706 Add a PrintBailout option
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5184
diff changeset
153 public static boolean PrintBailout = ____;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
154 public static int TraceLinearScanLevel = 0;
4255
1e62f742f0b3 Test how trace-code wrapped into an assert looks like.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 4213
diff changeset
155 public static boolean TraceRegisterAllocation = false;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
156 public static int TraceLIRGeneratorLevel = 0;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
157 public static boolean TraceEscapeAnalysis = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
158 public static int TraceBytecodeParserLevel = 0;
5105
95b8a32a7cc3 preparations to avoid endless recompilations because of not updated profiling information
Christian Haeubl <christian.haeubl@oracle.com>
parents: 5061
diff changeset
159 public static boolean PrintBailouts = true;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
160 public static boolean ExitVMOnBailout = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
161 public static boolean ExitVMOnException = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
162
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
163 // state merging settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
164 public static boolean AssumeVerifiedBytecode = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
165
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
166 // Code generator settings
5087
0c968a6e0ca0 disable PropagateTypes option
Lukas Stadler <lukas.stadler@jku.at>
parents: 5085
diff changeset
167 public static boolean PropagateTypes = ____;
5391
5097f21f6c2b add a new simple CheckCast elimination phase
Lukas Stadler <lukas.stadler@jku.at>
parents: 5389
diff changeset
168 public static boolean CheckCastElimination = true;
5389
612b4f099362 disable frame state culling
Lukas Stadler <lukas.stadler@jku.at>
parents: 5385
diff changeset
169 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
170 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
171 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
172 static boolean UseExceptionProbability = true;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
173 public static boolean AllowExplicitExceptionChecks = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
174 public static boolean OmitHotExceptionStacktrace = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
175 public static boolean GenSafepoints = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
176 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
177 static boolean UseTypeCheckHints = true;
5004
2792bcd9a0ce disable vtable stub inlining
Lukas Stadler <lukas.stadler@jku.at>
parents: 5003
diff changeset
178 public static boolean InlineVTableStubs = ____;
2792bcd9a0ce disable vtable stub inlining
Lukas Stadler <lukas.stadler@jku.at>
parents: 5003
diff changeset
179 public static boolean AlwaysInlineVTableStubs = ____;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
180
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
181 public static boolean GenAssertionCode = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
182 public static boolean AlignCallsForPatching = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
183 public static boolean ResolveClassBeforeStaticInvoke = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
184
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
185 // Translating tableswitch instructions
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
186 public static int SequentialSwitchLimit = 4;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
187 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
188 public static double MinTableSwitchDensity = 0.5;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
189
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
190 public static boolean DetailedAsserts = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
191
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
192 // Runtime settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
193 public static int ReadPrefetchInstr = 0;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
194 public static int StackShadowPages = 2;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
195
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
196 // Assembler settings
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
197 public static boolean CommentedAssembly = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
198 public static boolean PrintLIRWithAssembly = ____;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
199
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
200 public static boolean SupportJsrBytecodes = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
201
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
202 public static boolean OptAssumptions = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
203 public static boolean OptReadElimination = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
204 public static boolean OptGVN = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
205 public static boolean OptCanonicalizer = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
206 public static boolean ScheduleOutOfLoops = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
207 public static boolean OptReorderLoops = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
208 public static boolean OptEliminateGuards = true;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
209 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
210 public static boolean OptLivenessAnalysis = true;
5215
ae367987a18c Add options for OptLoopTransform and OptSafepointElimination
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5201
diff changeset
211 public static boolean OptLoopTransform = true;
ae367987a18c Add options for OptLoopTransform and OptSafepointElimination
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 5201
diff changeset
212 public static boolean OptSafepointElimination = true;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
213
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
214 /**
5318
b5cd7bc05695 Method entry counters: Enable the flag to collect an execution profile of compiled methods and their callers. This allows to, e.g., detect methods that should be inlined because they are called frequently.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 5268
diff changeset
215 * Insert a counter in the method prologue to track the most frequently called methods that were compiled by Graal.
b5cd7bc05695 Method entry counters: Enable the flag to collect an execution profile of compiled methods and their callers. This allows to, e.g., detect methods that should be inlined because they are called frequently.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 5268
diff changeset
216 */
b5cd7bc05695 Method entry counters: Enable the flag to collect an execution profile of compiled methods and their callers. This allows to, e.g., detect methods that should be inlined because they are called frequently.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 5268
diff changeset
217 public static boolean MethodEntryCounters = false;
b5cd7bc05695 Method entry counters: Enable the flag to collect an execution profile of compiled methods and their callers. This allows to, e.g., detect methods that should be inlined because they are called frequently.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 5268
diff changeset
218 /**
b5cd7bc05695 Method entry counters: Enable the flag to collect an execution profile of compiled methods and their callers. This allows to, e.g., detect methods that should be inlined because they are called frequently.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 5268
diff changeset
219 * Number of caller program counters to distinguish when counting methods.
b5cd7bc05695 Method entry counters: Enable the flag to collect an execution profile of compiled methods and their callers. This allows to, e.g., detect methods that should be inlined because they are called frequently.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 5268
diff changeset
220 */
b5cd7bc05695 Method entry counters: Enable the flag to collect an execution profile of compiled methods and their callers. This allows to, e.g., detect methods that should be inlined because they are called frequently.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 5268
diff changeset
221 public static int MethodEntryCountersCallers = 20;
b5cd7bc05695 Method entry counters: Enable the flag to collect an execution profile of compiled methods and their callers. This allows to, e.g., detect methods that should be inlined because they are called frequently.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 5268
diff changeset
222
b5cd7bc05695 Method entry counters: Enable the flag to collect an execution profile of compiled methods and their callers. This allows to, e.g., detect methods that should be inlined because they are called frequently.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 5268
diff changeset
223 /**
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
224 * Flag to turn on SSA-based register allocation, which is currently under development.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
225 */
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
226 public static boolean AllocSSA = false;
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
227
5156
482265e41a1a added -G:+PrintFlags flag for printing the Graal flags; tightened format checking of Graal options to be consistent with HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 5145
diff changeset
228 /**
482265e41a1a added -G:+PrintFlags flag for printing the Graal flags; tightened format checking of Graal options to be consistent with HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 5145
diff changeset
229 * Prints all the available GraalOptions.
482265e41a1a added -G:+PrintFlags flag for printing the Graal flags; tightened format checking of Graal options to be consistent with HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 5145
diff changeset
230 */
482265e41a1a added -G:+PrintFlags flag for printing the Graal flags; tightened format checking of Graal options to be consistent with HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 5145
diff changeset
231 public static boolean PrintFlags = false;
482265e41a1a added -G:+PrintFlags flag for printing the Graal flags; tightened format checking of Graal options to be consistent with HotSpot
Doug Simon <doug.simon@oracle.com>
parents: 5145
diff changeset
232
5330
678f31e9724e added -G:+CheckcastCounters to profile the paths taken through a compiled checkcast
Doug Simon <doug.simon@oracle.com>
parents: 5319
diff changeset
233 /**
678f31e9724e added -G:+CheckcastCounters to profile the paths taken through a compiled checkcast
Doug Simon <doug.simon@oracle.com>
parents: 5319
diff changeset
234 * Counts the various paths taken through a compiled checkcast.
678f31e9724e added -G:+CheckcastCounters to profile the paths taken through a compiled checkcast
Doug Simon <doug.simon@oracle.com>
parents: 5319
diff changeset
235 */
678f31e9724e added -G:+CheckcastCounters to profile the paths taken through a compiled checkcast
Doug Simon <doug.simon@oracle.com>
parents: 5319
diff changeset
236 public static boolean CheckcastCounters = false;
678f31e9724e added -G:+CheckcastCounters to profile the paths taken through a compiled checkcast
Doug Simon <doug.simon@oracle.com>
parents: 5319
diff changeset
237
5343
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
238 /**
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
239 * 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
240 * 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
241 */
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
242 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
243
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
244 /**
20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts
Doug Simon <doug.simon@oracle.com>
parents: 5336
diff changeset
245 * 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
246 * 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
247 * 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
248 */
5331
6e346160f104 replaced magic constants with GraalOptions.CheckcastMaxHints and GraalOptions.InstanceOfMaxHints
Doug Simon <doug.simon@oracle.com>
parents: 5330
diff changeset
249 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
250
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
251 /**
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
252 * @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
253 */
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
254 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
255
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
256 /**
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
257 * @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
258 */
5331
6e346160f104 replaced magic constants with GraalOptions.CheckcastMaxHints and GraalOptions.InstanceOfMaxHints
Doug Simon <doug.simon@oracle.com>
parents: 5330
diff changeset
259 public static int InstanceOfMaxHints = 1;
6e346160f104 replaced magic constants with GraalOptions.CheckcastMaxHints and GraalOptions.InstanceOfMaxHints
Doug Simon <doug.simon@oracle.com>
parents: 5330
diff changeset
260
5346
4c3d953f8131 added mechanism (enabled by -G:PICache and -G:PiFilter) for saving/loading method profiling info to/from disk
Doug Simon <doug.simon@oracle.com>
parents: 5343
diff changeset
261 /**
5563
6a2671066204 added NewInstanceSnippets for lowering NewInstanceNodes (currently disabled by default)
Doug Simon <doug.simon@oracle.com>
parents: 5445
diff changeset
262 * Use HIR lowering instead of LIR lowering for certain instructions.
6a2671066204 added NewInstanceSnippets for lowering NewInstanceNodes (currently disabled by default)
Doug Simon <doug.simon@oracle.com>
parents: 5445
diff changeset
263 * Only instructions in methods whose fully qualified name contains this option will be HIR lowered.
5379
c862951e769d moved checkcast lowering into LoweringPhase and added -G:HIRLowerCheckcast option to enable it (disabled by default) as it is not yet stable
Doug Simon <doug.simon@oracle.com>
parents: 5369
diff changeset
264 */
5398
17cddac1f2da fixed bug in compiled call to slow typecheck stub in VM
Doug Simon <doug.simon@oracle.com>
parents: 5394
diff changeset
265 public static String HIRLowerCheckcast = "";
5656
c06ee31464c0 Re-enabled NewInstanceSnippets by default for all methods.
Doug Simon <doug.simon@oracle.com>
parents: 5638
diff changeset
266 public static String HIRLowerNewInstance = "";
5760
87e8baf5447c added snippets for lowering array creation and initialization (in NewObjectSnippets)
Doug Simon <doug.simon@oracle.com>
parents: 5745
diff changeset
267 public static String HIRLowerNewArray = "";
5379
c862951e769d moved checkcast lowering into LoweringPhase and added -G:HIRLowerCheckcast option to enable it (disabled by default) as it is not yet stable
Doug Simon <doug.simon@oracle.com>
parents: 5369
diff changeset
268
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
269 static {
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
270 // 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
271 assert (DetailedAsserts = true) == true;
4291
015c53fefd3a Use HexCodeFile for disassembly to avoid loading slow disassembler.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 4255
diff changeset
272 assert (CommentedAssembly = true) == true;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
273 }
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
274 }