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