annotate src/share/vm/c1/c1_globals.hpp @ 1721:413ad0331a0c

6977924: Changes for 6975078 produce build error with certain gcc versions Summary: The changes introduced for 6975078 assign badHeapOopVal to the _allocation field in the ResourceObj class. In 32 bit linux builds with certain versions of gcc this assignment will be flagged as an error while compiling allocation.cpp. In 32 bit builds the constant value badHeapOopVal (which is cast to an intptr_t) is negative. The _allocation field is typed as an unsigned intptr_t and gcc catches this as an error. Reviewed-by: jcoomes, ysr, phh
author johnc
date Wed, 18 Aug 2010 10:59:06 -0700
parents c18cbe5936b8
children d5d065957597
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 /*
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1397
diff changeset
2 * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 *
a61af66fc99e Initial load
duke
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 * published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 *
a61af66fc99e Initial load
duke
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 * accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 *
a61af66fc99e Initial load
duke
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 *
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1397
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1397
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1397
diff changeset
21 * questions.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
22 *
a61af66fc99e Initial load
duke
parents:
diff changeset
23 */
a61af66fc99e Initial load
duke
parents:
diff changeset
24
a61af66fc99e Initial load
duke
parents:
diff changeset
25 //
a61af66fc99e Initial load
duke
parents:
diff changeset
26 // Defines all global flags used by the client compiler.
a61af66fc99e Initial load
duke
parents:
diff changeset
27 //
a61af66fc99e Initial load
duke
parents:
diff changeset
28 #ifndef TIERED
a61af66fc99e Initial load
duke
parents:
diff changeset
29 #define NOT_TIERED(x) x
a61af66fc99e Initial load
duke
parents:
diff changeset
30 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
31 #define NOT_TIERED(x)
a61af66fc99e Initial load
duke
parents:
diff changeset
32 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
33
a61af66fc99e Initial load
duke
parents:
diff changeset
34 #define C1_FLAGS(develop, develop_pd, product, product_pd, notproduct) \
a61af66fc99e Initial load
duke
parents:
diff changeset
35 \
a61af66fc99e Initial load
duke
parents:
diff changeset
36 /* Printing */ \
a61af66fc99e Initial load
duke
parents:
diff changeset
37 notproduct(bool, PrintC1Statistics, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
38 "Print Compiler1 statistics" ) \
a61af66fc99e Initial load
duke
parents:
diff changeset
39 \
a61af66fc99e Initial load
duke
parents:
diff changeset
40 notproduct(bool, PrintInitialBlockList, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
41 "Print block list of BlockListBuilder") \
a61af66fc99e Initial load
duke
parents:
diff changeset
42 \
a61af66fc99e Initial load
duke
parents:
diff changeset
43 notproduct(bool, PrintCFG, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
44 "Print control flow graph after each change") \
a61af66fc99e Initial load
duke
parents:
diff changeset
45 \
a61af66fc99e Initial load
duke
parents:
diff changeset
46 notproduct(bool, PrintCFG0, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
47 "Print control flow graph after construction") \
a61af66fc99e Initial load
duke
parents:
diff changeset
48 \
a61af66fc99e Initial load
duke
parents:
diff changeset
49 notproduct(bool, PrintCFG1, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
50 "Print control flow graph after optimizations") \
a61af66fc99e Initial load
duke
parents:
diff changeset
51 \
a61af66fc99e Initial load
duke
parents:
diff changeset
52 notproduct(bool, PrintCFG2, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
53 "Print control flow graph before code generation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
54 \
a61af66fc99e Initial load
duke
parents:
diff changeset
55 notproduct(bool, PrintIRDuringConstruction, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
56 "Print IR as it's being constructed (helpful for debugging frontend)")\
a61af66fc99e Initial load
duke
parents:
diff changeset
57 \
a61af66fc99e Initial load
duke
parents:
diff changeset
58 notproduct(bool, PrintPhiFunctions, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
59 "Print phi functions when they are created and simplified") \
a61af66fc99e Initial load
duke
parents:
diff changeset
60 \
a61af66fc99e Initial load
duke
parents:
diff changeset
61 notproduct(bool, PrintIR, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
62 "Print full intermediate representation after each change") \
a61af66fc99e Initial load
duke
parents:
diff changeset
63 \
a61af66fc99e Initial load
duke
parents:
diff changeset
64 notproduct(bool, PrintIR0, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
65 "Print full intermediate representation after construction") \
a61af66fc99e Initial load
duke
parents:
diff changeset
66 \
a61af66fc99e Initial load
duke
parents:
diff changeset
67 notproduct(bool, PrintIR1, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
68 "Print full intermediate representation after optimizations") \
a61af66fc99e Initial load
duke
parents:
diff changeset
69 \
a61af66fc99e Initial load
duke
parents:
diff changeset
70 notproduct(bool, PrintIR2, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
71 "Print full intermediate representation before code generation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
72 \
a61af66fc99e Initial load
duke
parents:
diff changeset
73 notproduct(bool, PrintSimpleStubs, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
74 "Print SimpleStubs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
75 \
a61af66fc99e Initial load
duke
parents:
diff changeset
76 /* C1 optimizations */ \
a61af66fc99e Initial load
duke
parents:
diff changeset
77 \
a61af66fc99e Initial load
duke
parents:
diff changeset
78 develop(bool, UseC1Optimizations, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
79 "Turn on C1 optimizations") \
a61af66fc99e Initial load
duke
parents:
diff changeset
80 \
a61af66fc99e Initial load
duke
parents:
diff changeset
81 develop(bool, SelectivePhiFunctions, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
82 "create phi functions at loop headers only when necessary") \
a61af66fc99e Initial load
duke
parents:
diff changeset
83 \
a61af66fc99e Initial load
duke
parents:
diff changeset
84 develop(bool, DoCEE, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
85 "Do Conditional Expression Elimination to simplify CFG") \
a61af66fc99e Initial load
duke
parents:
diff changeset
86 \
a61af66fc99e Initial load
duke
parents:
diff changeset
87 develop(bool, PrintCEE, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
88 "Print Conditional Expression Elimination") \
a61af66fc99e Initial load
duke
parents:
diff changeset
89 \
a61af66fc99e Initial load
duke
parents:
diff changeset
90 develop(bool, UseLocalValueNumbering, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
91 "Use Local Value Numbering (embedded in GraphBuilder)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
92 \
a61af66fc99e Initial load
duke
parents:
diff changeset
93 develop(bool, UseGlobalValueNumbering, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
94 "Use Global Value Numbering (separate phase)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
95 \
a61af66fc99e Initial load
duke
parents:
diff changeset
96 develop(bool, PrintValueNumbering, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
97 "Print Value Numbering") \
a61af66fc99e Initial load
duke
parents:
diff changeset
98 \
a61af66fc99e Initial load
duke
parents:
diff changeset
99 product(intx, ValueMapInitialSize, 11, \
a61af66fc99e Initial load
duke
parents:
diff changeset
100 "Initial size of a value map") \
a61af66fc99e Initial load
duke
parents:
diff changeset
101 \
a61af66fc99e Initial load
duke
parents:
diff changeset
102 product(intx, ValueMapMaxLoopSize, 8, \
a61af66fc99e Initial load
duke
parents:
diff changeset
103 "maximum size of a loop optimized by global value numbering") \
a61af66fc99e Initial load
duke
parents:
diff changeset
104 \
a61af66fc99e Initial load
duke
parents:
diff changeset
105 develop(bool, EliminateBlocks, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
106 "Eliminate unneccessary basic blocks") \
a61af66fc99e Initial load
duke
parents:
diff changeset
107 \
a61af66fc99e Initial load
duke
parents:
diff changeset
108 develop(bool, PrintBlockElimination, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
109 "Print basic block elimination") \
a61af66fc99e Initial load
duke
parents:
diff changeset
110 \
a61af66fc99e Initial load
duke
parents:
diff changeset
111 develop(bool, EliminateNullChecks, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
112 "Eliminate unneccessary null checks") \
a61af66fc99e Initial load
duke
parents:
diff changeset
113 \
a61af66fc99e Initial load
duke
parents:
diff changeset
114 develop(bool, PrintNullCheckElimination, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
115 "Print null check elimination") \
a61af66fc99e Initial load
duke
parents:
diff changeset
116 \
a61af66fc99e Initial load
duke
parents:
diff changeset
117 develop(bool, EliminateFieldAccess, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
118 "Optimize field loads and stores") \
a61af66fc99e Initial load
duke
parents:
diff changeset
119 \
a61af66fc99e Initial load
duke
parents:
diff changeset
120 develop(bool, InlineMethodsWithExceptionHandlers, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
121 "Inline methods containing exception handlers " \
a61af66fc99e Initial load
duke
parents:
diff changeset
122 "(NOTE: does not work with current backend)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
123 \
a61af66fc99e Initial load
duke
parents:
diff changeset
124 develop(bool, InlineSynchronizedMethods, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
125 "Inline synchronized methods") \
a61af66fc99e Initial load
duke
parents:
diff changeset
126 \
a61af66fc99e Initial load
duke
parents:
diff changeset
127 develop(bool, InlineNIOCheckIndex, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
128 "Intrinsify java.nio.Buffer.checkIndex") \
a61af66fc99e Initial load
duke
parents:
diff changeset
129 \
a61af66fc99e Initial load
duke
parents:
diff changeset
130 develop(bool, CanonicalizeNodes, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
131 "Canonicalize graph nodes") \
a61af66fc99e Initial load
duke
parents:
diff changeset
132 \
a61af66fc99e Initial load
duke
parents:
diff changeset
133 develop(bool, CanonicalizeExperimental, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
134 "Canonicalize graph nodes, experimental code") \
a61af66fc99e Initial load
duke
parents:
diff changeset
135 \
a61af66fc99e Initial load
duke
parents:
diff changeset
136 develop(bool, PrintCanonicalization, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
137 "Print graph node canonicalization") \
a61af66fc99e Initial load
duke
parents:
diff changeset
138 \
a61af66fc99e Initial load
duke
parents:
diff changeset
139 develop(bool, UseTableRanges, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
140 "Faster versions of lookup table using ranges") \
a61af66fc99e Initial load
duke
parents:
diff changeset
141 \
a61af66fc99e Initial load
duke
parents:
diff changeset
142 develop(bool, UseFastExceptionHandling, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
143 "Faster handling of exceptions") \
a61af66fc99e Initial load
duke
parents:
diff changeset
144 \
a61af66fc99e Initial load
duke
parents:
diff changeset
145 develop_pd(bool, RoundFPResults, \
a61af66fc99e Initial load
duke
parents:
diff changeset
146 "Indicates whether rounding is needed for floating point results")\
a61af66fc99e Initial load
duke
parents:
diff changeset
147 \
a61af66fc99e Initial load
duke
parents:
diff changeset
148 develop(intx, NestedInliningSizeRatio, 90, \
a61af66fc99e Initial load
duke
parents:
diff changeset
149 "Percentage of prev. allowed inline size in recursive inlining") \
a61af66fc99e Initial load
duke
parents:
diff changeset
150 \
a61af66fc99e Initial load
duke
parents:
diff changeset
151 notproduct(bool, PrintIRWithLIR, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
152 "Print IR instructions with generated LIR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
153 \
a61af66fc99e Initial load
duke
parents:
diff changeset
154 notproduct(bool, PrintLIRWithAssembly, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
155 "Show LIR instruction with generated assembly") \
a61af66fc99e Initial load
duke
parents:
diff changeset
156 \
a61af66fc99e Initial load
duke
parents:
diff changeset
157 develop(bool, CommentedAssembly, trueInDebug, \
a61af66fc99e Initial load
duke
parents:
diff changeset
158 "Show extra info in PrintNMethods output") \
a61af66fc99e Initial load
duke
parents:
diff changeset
159 \
a61af66fc99e Initial load
duke
parents:
diff changeset
160 develop(bool, LIRTracePeephole, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
161 "Trace peephole optimizer") \
a61af66fc99e Initial load
duke
parents:
diff changeset
162 \
a61af66fc99e Initial load
duke
parents:
diff changeset
163 develop(bool, LIRTraceExecution, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
164 "add LIR code which logs the execution of blocks") \
a61af66fc99e Initial load
duke
parents:
diff changeset
165 \
a61af66fc99e Initial load
duke
parents:
diff changeset
166 product_pd(bool, LIRFillDelaySlots, \
a61af66fc99e Initial load
duke
parents:
diff changeset
167 "fill delays on on SPARC with LIR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
168 \
a61af66fc99e Initial load
duke
parents:
diff changeset
169 develop_pd(bool, CSEArrayLength, \
a61af66fc99e Initial load
duke
parents:
diff changeset
170 "Create separate nodes for length in array accesses") \
a61af66fc99e Initial load
duke
parents:
diff changeset
171 \
a61af66fc99e Initial load
duke
parents:
diff changeset
172 develop_pd(bool, TwoOperandLIRForm, \
a61af66fc99e Initial load
duke
parents:
diff changeset
173 "true if LIR requires src1 and dst to match in binary LIR ops") \
a61af66fc99e Initial load
duke
parents:
diff changeset
174 \
a61af66fc99e Initial load
duke
parents:
diff changeset
175 develop(intx, TraceLinearScanLevel, 0, \
a61af66fc99e Initial load
duke
parents:
diff changeset
176 "Debug levels for the linear scan allocator") \
a61af66fc99e Initial load
duke
parents:
diff changeset
177 \
a61af66fc99e Initial load
duke
parents:
diff changeset
178 develop(bool, StressLinearScan, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
179 "scramble block order used by LinearScan (stress test)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
180 \
a61af66fc99e Initial load
duke
parents:
diff changeset
181 product(bool, TimeLinearScan, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
182 "detailed timing of LinearScan phases") \
a61af66fc99e Initial load
duke
parents:
diff changeset
183 \
a61af66fc99e Initial load
duke
parents:
diff changeset
184 develop(bool, TimeEachLinearScan, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
185 "print detailed timing of each LinearScan run") \
a61af66fc99e Initial load
duke
parents:
diff changeset
186 \
a61af66fc99e Initial load
duke
parents:
diff changeset
187 develop(bool, CountLinearScan, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
188 "collect statistic counters during LinearScan") \
a61af66fc99e Initial load
duke
parents:
diff changeset
189 \
a61af66fc99e Initial load
duke
parents:
diff changeset
190 /* C1 variable */ \
a61af66fc99e Initial load
duke
parents:
diff changeset
191 \
a61af66fc99e Initial load
duke
parents:
diff changeset
192 develop(bool, C1Breakpoint, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
193 "Sets a breakpoint at entry of each compiled method") \
a61af66fc99e Initial load
duke
parents:
diff changeset
194 \
a61af66fc99e Initial load
duke
parents:
diff changeset
195 develop(bool, ImplicitDiv0Checks, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
196 "Use implicit division by zero checks") \
a61af66fc99e Initial load
duke
parents:
diff changeset
197 \
a61af66fc99e Initial load
duke
parents:
diff changeset
198 develop(bool, PinAllInstructions, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
199 "All instructions are pinned") \
a61af66fc99e Initial load
duke
parents:
diff changeset
200 \
a61af66fc99e Initial load
duke
parents:
diff changeset
201 develop(bool, ValueStackPinStackAll, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
202 "Pinning in ValueStack pin everything") \
a61af66fc99e Initial load
duke
parents:
diff changeset
203 \
a61af66fc99e Initial load
duke
parents:
diff changeset
204 develop(bool, UseFastNewInstance, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
205 "Use fast inlined instance allocation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
206 \
a61af66fc99e Initial load
duke
parents:
diff changeset
207 develop(bool, UseFastNewTypeArray, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
208 "Use fast inlined type array allocation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
209 \
a61af66fc99e Initial load
duke
parents:
diff changeset
210 develop(bool, UseFastNewObjectArray, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
211 "Use fast inlined object array allocation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
212 \
a61af66fc99e Initial load
duke
parents:
diff changeset
213 develop(bool, UseFastLocking, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
214 "Use fast inlined locking code") \
a61af66fc99e Initial load
duke
parents:
diff changeset
215 \
a61af66fc99e Initial load
duke
parents:
diff changeset
216 develop(bool, UseSlowPath, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
217 "For debugging: test slow cases by always using them") \
a61af66fc99e Initial load
duke
parents:
diff changeset
218 \
a61af66fc99e Initial load
duke
parents:
diff changeset
219 develop(bool, GenerateArrayStoreCheck, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
220 "Generates code for array store checks") \
a61af66fc99e Initial load
duke
parents:
diff changeset
221 \
a61af66fc99e Initial load
duke
parents:
diff changeset
222 develop(bool, DeoptC1, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
223 "Use deoptimization in C1") \
a61af66fc99e Initial load
duke
parents:
diff changeset
224 \
a61af66fc99e Initial load
duke
parents:
diff changeset
225 develop(bool, DeoptOnAsyncException, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
226 "Deoptimize upon Thread.stop(); improves precision of IR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
227 \
a61af66fc99e Initial load
duke
parents:
diff changeset
228 develop(bool, PrintBailouts, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
229 "Print bailout and its reason") \
a61af66fc99e Initial load
duke
parents:
diff changeset
230 \
a61af66fc99e Initial load
duke
parents:
diff changeset
231 develop(bool, TracePatching, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
232 "Trace patching of field access on uninitialized classes") \
a61af66fc99e Initial load
duke
parents:
diff changeset
233 \
a61af66fc99e Initial load
duke
parents:
diff changeset
234 develop(bool, PatchALot, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
235 "Marks all fields as having unloaded classes") \
a61af66fc99e Initial load
duke
parents:
diff changeset
236 \
a61af66fc99e Initial load
duke
parents:
diff changeset
237 develop(bool, PrintNotLoaded, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
238 "Prints where classes are not loaded during code generation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
239 \
a61af66fc99e Initial load
duke
parents:
diff changeset
240 notproduct(bool, VerifyOopMaps, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
241 "Adds oopmap verification code to the generated code") \
a61af66fc99e Initial load
duke
parents:
diff changeset
242 \
a61af66fc99e Initial load
duke
parents:
diff changeset
243 develop(bool, PrintLIR, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
244 "print low-level IR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
245 \
a61af66fc99e Initial load
duke
parents:
diff changeset
246 develop(bool, BailoutAfterHIR, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
247 "bailout of compilation after building of HIR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
248 \
a61af66fc99e Initial load
duke
parents:
diff changeset
249 develop(bool, BailoutAfterLIR, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
250 "bailout of compilation after building of LIR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
251 \
a61af66fc99e Initial load
duke
parents:
diff changeset
252 develop(bool, BailoutOnExceptionHandlers, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
253 "bailout of compilation for methods with exception handlers") \
a61af66fc99e Initial load
duke
parents:
diff changeset
254 \
a61af66fc99e Initial load
duke
parents:
diff changeset
255 develop(bool, InstallMethods, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
256 "Install methods at the end of successful compilations") \
a61af66fc99e Initial load
duke
parents:
diff changeset
257 \
a61af66fc99e Initial load
duke
parents:
diff changeset
258 product(intx, CompilationRepeat, 0, \
a61af66fc99e Initial load
duke
parents:
diff changeset
259 "Number of times to recompile method before returning result") \
a61af66fc99e Initial load
duke
parents:
diff changeset
260 \
a61af66fc99e Initial load
duke
parents:
diff changeset
261 develop(intx, NMethodSizeLimit, (32*K)*wordSize, \
a61af66fc99e Initial load
duke
parents:
diff changeset
262 "Maximum size of a compiled method.") \
a61af66fc99e Initial load
duke
parents:
diff changeset
263 \
a61af66fc99e Initial load
duke
parents:
diff changeset
264 develop(bool, TraceFPUStack, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
265 "Trace emulation of the FPU stack (intel only)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
266 \
a61af66fc99e Initial load
duke
parents:
diff changeset
267 develop(bool, TraceFPURegisterUsage, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
268 "Trace usage of FPU registers at start of blocks (intel only)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
269 \
a61af66fc99e Initial load
duke
parents:
diff changeset
270 develop(bool, OptimizeUnsafes, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
271 "Optimize raw unsafe ops") \
a61af66fc99e Initial load
duke
parents:
diff changeset
272 \
a61af66fc99e Initial load
duke
parents:
diff changeset
273 develop(bool, PrintUnsafeOptimization, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
274 "Print optimization of raw unsafe ops") \
a61af66fc99e Initial load
duke
parents:
diff changeset
275 \
a61af66fc99e Initial load
duke
parents:
diff changeset
276 develop(intx, InstructionCountCutoff, 37000, \
a61af66fc99e Initial load
duke
parents:
diff changeset
277 "If GraphBuilder adds this many instructions, bails out") \
a61af66fc99e Initial load
duke
parents:
diff changeset
278 \
a61af66fc99e Initial load
duke
parents:
diff changeset
279 product_pd(intx, SafepointPollOffset, \
a61af66fc99e Initial load
duke
parents:
diff changeset
280 "Offset added to polling address (Intel only)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
281 \
a61af66fc99e Initial load
duke
parents:
diff changeset
282 product(bool, UseNewFeature1, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
283 "Enable new feature for testing. This is a dummy flag.") \
a61af66fc99e Initial load
duke
parents:
diff changeset
284 \
a61af66fc99e Initial load
duke
parents:
diff changeset
285 product(bool, UseNewFeature2, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
286 "Enable new feature for testing. This is a dummy flag.") \
a61af66fc99e Initial load
duke
parents:
diff changeset
287 \
a61af66fc99e Initial load
duke
parents:
diff changeset
288 product(bool, UseNewFeature3, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
289 "Enable new feature for testing. This is a dummy flag.") \
a61af66fc99e Initial load
duke
parents:
diff changeset
290 \
a61af66fc99e Initial load
duke
parents:
diff changeset
291 product(bool, UseNewFeature4, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
292 "Enable new feature for testing. This is a dummy flag.") \
a61af66fc99e Initial load
duke
parents:
diff changeset
293 \
a61af66fc99e Initial load
duke
parents:
diff changeset
294 develop(bool, ComputeExactFPURegisterUsage, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
295 "Compute additional live set for fpu registers to simplify fpu stack merge (Intel only)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
296 \
a61af66fc99e Initial load
duke
parents:
diff changeset
297 product(bool, Tier1ProfileCalls, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
298 "Profile calls when generating code for updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
299 \
a61af66fc99e Initial load
duke
parents:
diff changeset
300 product(bool, Tier1ProfileVirtualCalls, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
301 "Profile virtual calls when generating code for updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
302 \
a61af66fc99e Initial load
duke
parents:
diff changeset
303 product(bool, Tier1ProfileInlinedCalls, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
304 "Profile inlined calls when generating code for updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
305 \
a61af66fc99e Initial load
duke
parents:
diff changeset
306 product(bool, Tier1ProfileBranches, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
307 "Profile branches when generating code for updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
308 \
a61af66fc99e Initial load
duke
parents:
diff changeset
309 product(bool, Tier1ProfileCheckcasts, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
310 "Profile checkcasts when generating code for updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
311 \
a61af66fc99e Initial load
duke
parents:
diff changeset
312 product(bool, Tier1OptimizeVirtualCallProfiling, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
313 "Use CHA and exact type results at call sites when updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
314 \
a61af66fc99e Initial load
duke
parents:
diff changeset
315 develop(bool, Tier1CountOnly, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
316 "Don't schedule tier 2 compiles. Enter VM only") \
a61af66fc99e Initial load
duke
parents:
diff changeset
317 \
a61af66fc99e Initial load
duke
parents:
diff changeset
318 develop(bool, PrintCFGToFile, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
319 "print control flow graph to a separate file during compilation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
320 \
a61af66fc99e Initial load
duke
parents:
diff changeset
321
a61af66fc99e Initial load
duke
parents:
diff changeset
322
a61af66fc99e Initial load
duke
parents:
diff changeset
323 // Read default values for c1 globals
a61af66fc99e Initial load
duke
parents:
diff changeset
324 // #include "incls/_c1_globals_pd.hpp.incl"
a61af66fc99e Initial load
duke
parents:
diff changeset
325
a61af66fc99e Initial load
duke
parents:
diff changeset
326 C1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_NOTPRODUCT_FLAG)