Mercurial > hg > truffle
annotate src/share/vm/c1/c1_globals.hpp @ 6862:8a5ea0a9ccc4
7127708: G1: change task num types from int to uint in concurrent mark
Summary: Change the type of various task num fields, parameters etc to unsigned and rename them to be more consistent with the other collectors. Code changes were also reviewed by Vitaly Davidovich.
Reviewed-by: johnc
Contributed-by: Kaushik Srenevasan <kaushik@twitter.com>
author | johnc |
---|---|
date | Sat, 06 Oct 2012 01:17:44 -0700 |
parents | da91efe96a93 |
children | e522a00b91aa 94fa3c4e7643 |
rev | line source |
---|---|
0 | 1 /* |
6633
a5dd6e3ef9f3
6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents:
3960
diff
changeset
|
2 * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
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 | 22 * |
23 */ | |
24 | |
1972 | 25 #ifndef SHARE_VM_C1_C1_GLOBALS_HPP |
26 #define SHARE_VM_C1_C1_GLOBALS_HPP | |
27 | |
28 #include "runtime/globals.hpp" | |
29 #ifdef TARGET_ARCH_x86 | |
30 # include "c1_globals_x86.hpp" | |
31 #endif | |
32 #ifdef TARGET_ARCH_sparc | |
33 # include "c1_globals_sparc.hpp" | |
34 #endif | |
2192
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
35 #ifdef TARGET_ARCH_arm |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
36 # include "c1_globals_arm.hpp" |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
37 #endif |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
38 #ifdef TARGET_ARCH_ppc |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
39 # include "c1_globals_ppc.hpp" |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
40 #endif |
1972 | 41 #ifdef TARGET_OS_FAMILY_linux |
42 # include "c1_globals_linux.hpp" | |
43 #endif | |
44 #ifdef TARGET_OS_FAMILY_solaris | |
45 # include "c1_globals_solaris.hpp" | |
46 #endif | |
47 #ifdef TARGET_OS_FAMILY_windows | |
48 # include "c1_globals_windows.hpp" | |
49 #endif | |
3960 | 50 #ifdef TARGET_OS_FAMILY_bsd |
51 # include "c1_globals_bsd.hpp" | |
52 #endif | |
1972 | 53 |
0 | 54 // |
55 // Defines all global flags used by the client compiler. | |
56 // | |
57 #define C1_FLAGS(develop, develop_pd, product, product_pd, notproduct) \ | |
58 \ | |
59 /* Printing */ \ | |
60 notproduct(bool, PrintC1Statistics, false, \ | |
61 "Print Compiler1 statistics" ) \ | |
62 \ | |
63 notproduct(bool, PrintInitialBlockList, false, \ | |
64 "Print block list of BlockListBuilder") \ | |
65 \ | |
66 notproduct(bool, PrintCFG, false, \ | |
67 "Print control flow graph after each change") \ | |
68 \ | |
69 notproduct(bool, PrintCFG0, false, \ | |
70 "Print control flow graph after construction") \ | |
71 \ | |
72 notproduct(bool, PrintCFG1, false, \ | |
73 "Print control flow graph after optimizations") \ | |
74 \ | |
75 notproduct(bool, PrintCFG2, false, \ | |
76 "Print control flow graph before code generation") \ | |
77 \ | |
78 notproduct(bool, PrintIRDuringConstruction, false, \ | |
79 "Print IR as it's being constructed (helpful for debugging frontend)")\ | |
80 \ | |
1783 | 81 notproduct(bool, PrintPhiFunctions, false, \ |
0 | 82 "Print phi functions when they are created and simplified") \ |
83 \ | |
84 notproduct(bool, PrintIR, false, \ | |
85 "Print full intermediate representation after each change") \ | |
86 \ | |
87 notproduct(bool, PrintIR0, false, \ | |
88 "Print full intermediate representation after construction") \ | |
89 \ | |
90 notproduct(bool, PrintIR1, false, \ | |
91 "Print full intermediate representation after optimizations") \ | |
92 \ | |
93 notproduct(bool, PrintIR2, false, \ | |
94 "Print full intermediate representation before code generation") \ | |
95 \ | |
96 notproduct(bool, PrintSimpleStubs, false, \ | |
97 "Print SimpleStubs") \ | |
98 \ | |
99 /* C1 optimizations */ \ | |
100 \ | |
101 develop(bool, UseC1Optimizations, true, \ | |
102 "Turn on C1 optimizations") \ | |
103 \ | |
104 develop(bool, SelectivePhiFunctions, true, \ | |
105 "create phi functions at loop headers only when necessary") \ | |
106 \ | |
1899 | 107 develop(bool, OptimizeIfOps, true, \ |
108 "Optimize multiple IfOps") \ | |
109 \ | |
0 | 110 develop(bool, DoCEE, true, \ |
111 "Do Conditional Expression Elimination to simplify CFG") \ | |
112 \ | |
113 develop(bool, PrintCEE, false, \ | |
114 "Print Conditional Expression Elimination") \ | |
115 \ | |
116 develop(bool, UseLocalValueNumbering, true, \ | |
117 "Use Local Value Numbering (embedded in GraphBuilder)") \ | |
118 \ | |
119 develop(bool, UseGlobalValueNumbering, true, \ | |
120 "Use Global Value Numbering (separate phase)") \ | |
121 \ | |
122 develop(bool, PrintValueNumbering, false, \ | |
123 "Print Value Numbering") \ | |
124 \ | |
125 product(intx, ValueMapInitialSize, 11, \ | |
126 "Initial size of a value map") \ | |
127 \ | |
128 product(intx, ValueMapMaxLoopSize, 8, \ | |
129 "maximum size of a loop optimized by global value numbering") \ | |
130 \ | |
131 develop(bool, EliminateBlocks, true, \ | |
132 "Eliminate unneccessary basic blocks") \ | |
133 \ | |
134 develop(bool, PrintBlockElimination, false, \ | |
135 "Print basic block elimination") \ | |
136 \ | |
137 develop(bool, EliminateNullChecks, true, \ | |
138 "Eliminate unneccessary null checks") \ | |
139 \ | |
140 develop(bool, PrintNullCheckElimination, false, \ | |
141 "Print null check elimination") \ | |
142 \ | |
143 develop(bool, EliminateFieldAccess, true, \ | |
144 "Optimize field loads and stores") \ | |
145 \ | |
146 develop(bool, InlineMethodsWithExceptionHandlers, true, \ | |
147 "Inline methods containing exception handlers " \ | |
148 "(NOTE: does not work with current backend)") \ | |
149 \ | |
150 develop(bool, InlineSynchronizedMethods, true, \ | |
151 "Inline synchronized methods") \ | |
152 \ | |
153 develop(bool, InlineNIOCheckIndex, true, \ | |
154 "Intrinsify java.nio.Buffer.checkIndex") \ | |
155 \ | |
156 develop(bool, CanonicalizeNodes, true, \ | |
157 "Canonicalize graph nodes") \ | |
158 \ | |
159 develop(bool, PrintCanonicalization, false, \ | |
160 "Print graph node canonicalization") \ | |
161 \ | |
162 develop(bool, UseTableRanges, true, \ | |
163 "Faster versions of lookup table using ranges") \ | |
164 \ | |
165 develop_pd(bool, RoundFPResults, \ | |
166 "Indicates whether rounding is needed for floating point results")\ | |
167 \ | |
168 develop(intx, NestedInliningSizeRatio, 90, \ | |
169 "Percentage of prev. allowed inline size in recursive inlining") \ | |
170 \ | |
171 notproduct(bool, PrintIRWithLIR, false, \ | |
172 "Print IR instructions with generated LIR") \ | |
173 \ | |
174 notproduct(bool, PrintLIRWithAssembly, false, \ | |
175 "Show LIR instruction with generated assembly") \ | |
176 \ | |
177 develop(bool, CommentedAssembly, trueInDebug, \ | |
178 "Show extra info in PrintNMethods output") \ | |
179 \ | |
180 develop(bool, LIRTracePeephole, false, \ | |
181 "Trace peephole optimizer") \ | |
182 \ | |
183 develop(bool, LIRTraceExecution, false, \ | |
184 "add LIR code which logs the execution of blocks") \ | |
185 \ | |
186 product_pd(bool, LIRFillDelaySlots, \ | |
187 "fill delays on on SPARC with LIR") \ | |
188 \ | |
189 develop_pd(bool, CSEArrayLength, \ | |
190 "Create separate nodes for length in array accesses") \ | |
191 \ | |
192 develop_pd(bool, TwoOperandLIRForm, \ | |
193 "true if LIR requires src1 and dst to match in binary LIR ops") \ | |
194 \ | |
195 develop(intx, TraceLinearScanLevel, 0, \ | |
196 "Debug levels for the linear scan allocator") \ | |
197 \ | |
198 develop(bool, StressLinearScan, false, \ | |
199 "scramble block order used by LinearScan (stress test)") \ | |
200 \ | |
201 product(bool, TimeLinearScan, false, \ | |
202 "detailed timing of LinearScan phases") \ | |
203 \ | |
204 develop(bool, TimeEachLinearScan, false, \ | |
205 "print detailed timing of each LinearScan run") \ | |
206 \ | |
207 develop(bool, CountLinearScan, false, \ | |
208 "collect statistic counters during LinearScan") \ | |
209 \ | |
210 /* C1 variable */ \ | |
211 \ | |
212 develop(bool, C1Breakpoint, false, \ | |
213 "Sets a breakpoint at entry of each compiled method") \ | |
214 \ | |
215 develop(bool, ImplicitDiv0Checks, true, \ | |
216 "Use implicit division by zero checks") \ | |
217 \ | |
218 develop(bool, PinAllInstructions, false, \ | |
219 "All instructions are pinned") \ | |
220 \ | |
221 develop(bool, UseFastNewInstance, true, \ | |
222 "Use fast inlined instance allocation") \ | |
223 \ | |
224 develop(bool, UseFastNewTypeArray, true, \ | |
225 "Use fast inlined type array allocation") \ | |
226 \ | |
227 develop(bool, UseFastNewObjectArray, true, \ | |
228 "Use fast inlined object array allocation") \ | |
229 \ | |
230 develop(bool, UseFastLocking, true, \ | |
231 "Use fast inlined locking code") \ | |
232 \ | |
233 develop(bool, UseSlowPath, false, \ | |
234 "For debugging: test slow cases by always using them") \ | |
235 \ | |
236 develop(bool, GenerateArrayStoreCheck, true, \ | |
237 "Generates code for array store checks") \ | |
238 \ | |
239 develop(bool, DeoptC1, true, \ | |
240 "Use deoptimization in C1") \ | |
241 \ | |
242 develop(bool, PrintBailouts, false, \ | |
243 "Print bailout and its reason") \ | |
244 \ | |
245 develop(bool, TracePatching, false, \ | |
246 "Trace patching of field access on uninitialized classes") \ | |
247 \ | |
248 develop(bool, PatchALot, false, \ | |
249 "Marks all fields as having unloaded classes") \ | |
250 \ | |
251 develop(bool, PrintNotLoaded, false, \ | |
252 "Prints where classes are not loaded during code generation") \ | |
253 \ | |
254 notproduct(bool, VerifyOopMaps, false, \ | |
255 "Adds oopmap verification code to the generated code") \ | |
256 \ | |
257 develop(bool, PrintLIR, false, \ | |
258 "print low-level IR") \ | |
259 \ | |
260 develop(bool, BailoutAfterHIR, false, \ | |
261 "bailout of compilation after building of HIR") \ | |
262 \ | |
263 develop(bool, BailoutAfterLIR, false, \ | |
264 "bailout of compilation after building of LIR") \ | |
265 \ | |
266 develop(bool, BailoutOnExceptionHandlers, false, \ | |
267 "bailout of compilation for methods with exception handlers") \ | |
268 \ | |
269 develop(bool, InstallMethods, true, \ | |
270 "Install methods at the end of successful compilations") \ | |
271 \ | |
272 product(intx, CompilationRepeat, 0, \ | |
273 "Number of times to recompile method before returning result") \ | |
274 \ | |
3896
b346f13112d8
7085279: C1 overflows code buffer with VerifyOops and CompressedOops
iveresov
parents:
2426
diff
changeset
|
275 develop(intx, NMethodSizeLimit, (64*K)*wordSize, \ |
0 | 276 "Maximum size of a compiled method.") \ |
277 \ | |
278 develop(bool, TraceFPUStack, false, \ | |
279 "Trace emulation of the FPU stack (intel only)") \ | |
280 \ | |
281 develop(bool, TraceFPURegisterUsage, false, \ | |
282 "Trace usage of FPU registers at start of blocks (intel only)") \ | |
283 \ | |
284 develop(bool, OptimizeUnsafes, true, \ | |
285 "Optimize raw unsafe ops") \ | |
286 \ | |
287 develop(bool, PrintUnsafeOptimization, false, \ | |
288 "Print optimization of raw unsafe ops") \ | |
289 \ | |
290 develop(intx, InstructionCountCutoff, 37000, \ | |
291 "If GraphBuilder adds this many instructions, bails out") \ | |
292 \ | |
293 product_pd(intx, SafepointPollOffset, \ | |
294 "Offset added to polling address (Intel only)") \ | |
295 \ | |
296 develop(bool, ComputeExactFPURegisterUsage, true, \ | |
297 "Compute additional live set for fpu registers to simplify fpu stack merge (Intel only)") \ | |
298 \ | |
1783 | 299 product(bool, C1ProfileCalls, true, \ |
0 | 300 "Profile calls when generating code for updating MDOs") \ |
301 \ | |
1783 | 302 product(bool, C1ProfileVirtualCalls, true, \ |
0 | 303 "Profile virtual calls when generating code for updating MDOs") \ |
304 \ | |
1783 | 305 product(bool, C1ProfileInlinedCalls, true, \ |
0 | 306 "Profile inlined calls when generating code for updating MDOs") \ |
307 \ | |
1783 | 308 product(bool, C1ProfileBranches, true, \ |
0 | 309 "Profile branches when generating code for updating MDOs") \ |
310 \ | |
1783 | 311 product(bool, C1ProfileCheckcasts, true, \ |
0 | 312 "Profile checkcasts when generating code for updating MDOs") \ |
313 \ | |
1783 | 314 product(bool, C1OptimizeVirtualCallProfiling, true, \ |
315 "Use CHA and exact type results at call sites when updating MDOs")\ | |
0 | 316 \ |
1783 | 317 product(bool, C1UpdateMethodData, trueInTiered, \ |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6633
diff
changeset
|
318 "Update MethodData*s in Tier1-generated code") \ |
0 | 319 \ |
320 develop(bool, PrintCFGToFile, false, \ | |
321 "print control flow graph to a separate file during compilation") \ | |
322 \ | |
323 | |
324 | |
325 // Read default values for c1 globals | |
326 | |
327 C1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_NOTPRODUCT_FLAG) | |
1972 | 328 |
329 #endif // SHARE_VM_C1_C1_GLOBALS_HPP |