annotate src/share/vm/c1/c1_globals.hpp @ 20543:e7d0505c8a30

8059758: Footprint regressions with JDK-8038423 Summary: Changes in JDK-8038423 always initialize (zero out) virtual memory used for auxiliary data structures. This causes a footprint regression for G1 in startup benchmarks. This is because they do not touch that memory at all, so the operating system does not actually commit these pages. The fix is to, if the initialization value of the data structures matches the default value of just committed memory (=0), do not do anything. Reviewed-by: jwilhelm, brutisso
author tschatzl
date Fri, 10 Oct 2014 15:51:58 +0200
parents a9becfeecd1b
children d8041d695d19 b9c94af14fd0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 /*
17467
55fb97c4c58d 8029233: Update copyright year to match last edit in jdk8 hotspot repository for 2013
mikael
parents: 13081
diff changeset
2 * Copyright (c) 2000, 2013, 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
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
25 #ifndef SHARE_VM_C1_C1_GLOBALS_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
26 #define SHARE_VM_C1_C1_GLOBALS_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
27
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
28 #include "runtime/globals.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
29 #ifdef TARGET_ARCH_x86
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
30 # include "c1_globals_x86.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
31 #endif
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
32 #ifdef TARGET_ARCH_sparc
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
33 # include "c1_globals_sparc.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
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
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
41 #ifdef TARGET_OS_FAMILY_linux
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
42 # include "c1_globals_linux.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
43 #endif
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
44 #ifdef TARGET_OS_FAMILY_solaris
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
45 # include "c1_globals_solaris.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
46 #endif
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
47 #ifdef TARGET_OS_FAMILY_windows
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
48 # include "c1_globals_windows.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
49 #endif
14411
bdd155477289 8023033: PPC64 (part 13): basic changes for AIX
goetz
parents: 8860
diff changeset
50 #ifdef TARGET_OS_FAMILY_aix
bdd155477289 8023033: PPC64 (part 13): basic changes for AIX
goetz
parents: 8860
diff changeset
51 # include "c1_globals_aix.hpp"
bdd155477289 8023033: PPC64 (part 13): basic changes for AIX
goetz
parents: 8860
diff changeset
52 #endif
3960
f08d439fab8c 7089790: integrate bsd-port changes
never
parents: 3896
diff changeset
53 #ifdef TARGET_OS_FAMILY_bsd
f08d439fab8c 7089790: integrate bsd-port changes
never
parents: 3896
diff changeset
54 # include "c1_globals_bsd.hpp"
f08d439fab8c 7089790: integrate bsd-port changes
never
parents: 3896
diff changeset
55 #endif
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
56
0
a61af66fc99e Initial load
duke
parents:
diff changeset
57 //
a61af66fc99e Initial load
duke
parents:
diff changeset
58 // Defines all global flags used by the client compiler.
a61af66fc99e Initial load
duke
parents:
diff changeset
59 //
12160
f98f5d48f511 7199175: JSR 292: C1 needs patching when invokedynamic/invokehandle call site is not linked
roland
parents: 8860
diff changeset
60 #define C1_FLAGS(develop, develop_pd, product, product_pd, diagnostic, notproduct) \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
61 \
a61af66fc99e Initial load
duke
parents:
diff changeset
62 /* Printing */ \
a61af66fc99e Initial load
duke
parents:
diff changeset
63 notproduct(bool, PrintC1Statistics, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
64 "Print Compiler1 statistics" ) \
a61af66fc99e Initial load
duke
parents:
diff changeset
65 \
a61af66fc99e Initial load
duke
parents:
diff changeset
66 notproduct(bool, PrintInitialBlockList, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
67 "Print block list of BlockListBuilder") \
a61af66fc99e Initial load
duke
parents:
diff changeset
68 \
a61af66fc99e Initial load
duke
parents:
diff changeset
69 notproduct(bool, PrintCFG, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
70 "Print control flow graph after each change") \
a61af66fc99e Initial load
duke
parents:
diff changeset
71 \
a61af66fc99e Initial load
duke
parents:
diff changeset
72 notproduct(bool, PrintCFG0, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
73 "Print control flow graph after construction") \
a61af66fc99e Initial load
duke
parents:
diff changeset
74 \
a61af66fc99e Initial load
duke
parents:
diff changeset
75 notproduct(bool, PrintCFG1, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
76 "Print control flow graph after optimizations") \
a61af66fc99e Initial load
duke
parents:
diff changeset
77 \
a61af66fc99e Initial load
duke
parents:
diff changeset
78 notproduct(bool, PrintCFG2, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
79 "Print control flow graph before code generation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
80 \
a61af66fc99e Initial load
duke
parents:
diff changeset
81 notproduct(bool, PrintIRDuringConstruction, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
82 "Print IR as it's being constructed (helpful for debugging frontend)")\
a61af66fc99e Initial load
duke
parents:
diff changeset
83 \
1783
d5d065957597 6953144: Tiered compilation
iveresov
parents: 1552
diff changeset
84 notproduct(bool, PrintPhiFunctions, false, \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
85 "Print phi functions when they are created and simplified") \
a61af66fc99e Initial load
duke
parents:
diff changeset
86 \
a61af66fc99e Initial load
duke
parents:
diff changeset
87 notproduct(bool, PrintIR, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
88 "Print full intermediate representation after each change") \
a61af66fc99e Initial load
duke
parents:
diff changeset
89 \
a61af66fc99e Initial load
duke
parents:
diff changeset
90 notproduct(bool, PrintIR0, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
91 "Print full intermediate representation after construction") \
a61af66fc99e Initial load
duke
parents:
diff changeset
92 \
a61af66fc99e Initial load
duke
parents:
diff changeset
93 notproduct(bool, PrintIR1, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
94 "Print full intermediate representation after optimizations") \
a61af66fc99e Initial load
duke
parents:
diff changeset
95 \
a61af66fc99e Initial load
duke
parents:
diff changeset
96 notproduct(bool, PrintIR2, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
97 "Print full intermediate representation before code generation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
98 \
a61af66fc99e Initial load
duke
parents:
diff changeset
99 notproduct(bool, PrintSimpleStubs, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
100 "Print SimpleStubs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
101 \
a61af66fc99e Initial load
duke
parents:
diff changeset
102 /* C1 optimizations */ \
a61af66fc99e Initial load
duke
parents:
diff changeset
103 \
a61af66fc99e Initial load
duke
parents:
diff changeset
104 develop(bool, UseC1Optimizations, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
105 "Turn on C1 optimizations") \
a61af66fc99e Initial load
duke
parents:
diff changeset
106 \
a61af66fc99e Initial load
duke
parents:
diff changeset
107 develop(bool, SelectivePhiFunctions, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
108 "create phi functions at loop headers only when necessary") \
a61af66fc99e Initial load
duke
parents:
diff changeset
109 \
1899
42a10fc37986 6991577: add IfOp optimization to C1
roland
parents: 1819
diff changeset
110 develop(bool, OptimizeIfOps, true, \
42a10fc37986 6991577: add IfOp optimization to C1
roland
parents: 1819
diff changeset
111 "Optimize multiple IfOps") \
42a10fc37986 6991577: add IfOp optimization to C1
roland
parents: 1819
diff changeset
112 \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
113 develop(bool, DoCEE, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
114 "Do Conditional Expression Elimination to simplify CFG") \
a61af66fc99e Initial load
duke
parents:
diff changeset
115 \
a61af66fc99e Initial load
duke
parents:
diff changeset
116 develop(bool, PrintCEE, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
117 "Print Conditional Expression Elimination") \
a61af66fc99e Initial load
duke
parents:
diff changeset
118 \
a61af66fc99e Initial load
duke
parents:
diff changeset
119 develop(bool, UseLocalValueNumbering, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
120 "Use Local Value Numbering (embedded in GraphBuilder)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
121 \
a61af66fc99e Initial load
duke
parents:
diff changeset
122 develop(bool, UseGlobalValueNumbering, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
123 "Use Global Value Numbering (separate phase)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
124 \
8860
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
125 product(bool, UseLoopInvariantCodeMotion, true, \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
126 "Simple loop invariant code motion for short loops during GVN") \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
127 \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
128 develop(bool, TracePredicateFailedTraps, false, \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
129 "trace runtime traps caused by predicate failure") \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
130 \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
131 develop(bool, StressLoopInvariantCodeMotion, false, \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
132 "stress loop invariant code motion") \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
133 \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
134 develop(bool, TraceRangeCheckElimination, false, \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
135 "Trace Range Check Elimination") \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
136 \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
137 develop(bool, AssertRangeCheckElimination, false, \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
138 "Assert Range Check Elimination") \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
139 \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
140 develop(bool, StressRangeCheckElimination, false, \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
141 "stress Range Check Elimination") \
46f6f063b272 7153771: array bound check elimination for c1
roland
parents: 7594
diff changeset
142 \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
143 develop(bool, PrintValueNumbering, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
144 "Print Value Numbering") \
a61af66fc99e Initial load
duke
parents:
diff changeset
145 \
a61af66fc99e Initial load
duke
parents:
diff changeset
146 product(intx, ValueMapInitialSize, 11, \
a61af66fc99e Initial load
duke
parents:
diff changeset
147 "Initial size of a value map") \
a61af66fc99e Initial load
duke
parents:
diff changeset
148 \
a61af66fc99e Initial load
duke
parents:
diff changeset
149 product(intx, ValueMapMaxLoopSize, 8, \
a61af66fc99e Initial load
duke
parents:
diff changeset
150 "maximum size of a loop optimized by global value numbering") \
a61af66fc99e Initial load
duke
parents:
diff changeset
151 \
a61af66fc99e Initial load
duke
parents:
diff changeset
152 develop(bool, EliminateBlocks, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
153 "Eliminate unneccessary basic blocks") \
a61af66fc99e Initial load
duke
parents:
diff changeset
154 \
a61af66fc99e Initial load
duke
parents:
diff changeset
155 develop(bool, PrintBlockElimination, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
156 "Print basic block elimination") \
a61af66fc99e Initial load
duke
parents:
diff changeset
157 \
a61af66fc99e Initial load
duke
parents:
diff changeset
158 develop(bool, EliminateNullChecks, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
159 "Eliminate unneccessary null checks") \
a61af66fc99e Initial load
duke
parents:
diff changeset
160 \
a61af66fc99e Initial load
duke
parents:
diff changeset
161 develop(bool, PrintNullCheckElimination, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
162 "Print null check elimination") \
a61af66fc99e Initial load
duke
parents:
diff changeset
163 \
a61af66fc99e Initial load
duke
parents:
diff changeset
164 develop(bool, EliminateFieldAccess, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
165 "Optimize field loads and stores") \
a61af66fc99e Initial load
duke
parents:
diff changeset
166 \
a61af66fc99e Initial load
duke
parents:
diff changeset
167 develop(bool, InlineMethodsWithExceptionHandlers, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
168 "Inline methods containing exception handlers " \
a61af66fc99e Initial load
duke
parents:
diff changeset
169 "(NOTE: does not work with current backend)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
170 \
7594
94fa3c4e7643 8005639: Move InlineSynchronizedMethods flag from develop to product
vladidan
parents: 6725
diff changeset
171 product(bool, InlineSynchronizedMethods, true, \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
172 "Inline synchronized methods") \
a61af66fc99e Initial load
duke
parents:
diff changeset
173 \
a61af66fc99e Initial load
duke
parents:
diff changeset
174 develop(bool, InlineNIOCheckIndex, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
175 "Intrinsify java.nio.Buffer.checkIndex") \
a61af66fc99e Initial load
duke
parents:
diff changeset
176 \
a61af66fc99e Initial load
duke
parents:
diff changeset
177 develop(bool, CanonicalizeNodes, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
178 "Canonicalize graph nodes") \
a61af66fc99e Initial load
duke
parents:
diff changeset
179 \
a61af66fc99e Initial load
duke
parents:
diff changeset
180 develop(bool, PrintCanonicalization, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
181 "Print graph node canonicalization") \
a61af66fc99e Initial load
duke
parents:
diff changeset
182 \
a61af66fc99e Initial load
duke
parents:
diff changeset
183 develop(bool, UseTableRanges, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
184 "Faster versions of lookup table using ranges") \
a61af66fc99e Initial load
duke
parents:
diff changeset
185 \
a61af66fc99e Initial load
duke
parents:
diff changeset
186 develop_pd(bool, RoundFPResults, \
a61af66fc99e Initial load
duke
parents:
diff changeset
187 "Indicates whether rounding is needed for floating point results")\
a61af66fc99e Initial load
duke
parents:
diff changeset
188 \
a61af66fc99e Initial load
duke
parents:
diff changeset
189 develop(intx, NestedInliningSizeRatio, 90, \
a61af66fc99e Initial load
duke
parents:
diff changeset
190 "Percentage of prev. allowed inline size in recursive inlining") \
a61af66fc99e Initial load
duke
parents:
diff changeset
191 \
a61af66fc99e Initial load
duke
parents:
diff changeset
192 notproduct(bool, PrintIRWithLIR, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
193 "Print IR instructions with generated LIR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
194 \
a61af66fc99e Initial load
duke
parents:
diff changeset
195 notproduct(bool, PrintLIRWithAssembly, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
196 "Show LIR instruction with generated assembly") \
a61af66fc99e Initial load
duke
parents:
diff changeset
197 \
a61af66fc99e Initial load
duke
parents:
diff changeset
198 develop(bool, CommentedAssembly, trueInDebug, \
a61af66fc99e Initial load
duke
parents:
diff changeset
199 "Show extra info in PrintNMethods output") \
a61af66fc99e Initial load
duke
parents:
diff changeset
200 \
a61af66fc99e Initial load
duke
parents:
diff changeset
201 develop(bool, LIRTracePeephole, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
202 "Trace peephole optimizer") \
a61af66fc99e Initial load
duke
parents:
diff changeset
203 \
a61af66fc99e Initial load
duke
parents:
diff changeset
204 develop(bool, LIRTraceExecution, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
205 "add LIR code which logs the execution of blocks") \
a61af66fc99e Initial load
duke
parents:
diff changeset
206 \
a61af66fc99e Initial load
duke
parents:
diff changeset
207 product_pd(bool, LIRFillDelaySlots, \
a61af66fc99e Initial load
duke
parents:
diff changeset
208 "fill delays on on SPARC with LIR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
209 \
a61af66fc99e Initial load
duke
parents:
diff changeset
210 develop_pd(bool, CSEArrayLength, \
a61af66fc99e Initial load
duke
parents:
diff changeset
211 "Create separate nodes for length in array accesses") \
a61af66fc99e Initial load
duke
parents:
diff changeset
212 \
a61af66fc99e Initial load
duke
parents:
diff changeset
213 develop_pd(bool, TwoOperandLIRForm, \
a61af66fc99e Initial load
duke
parents:
diff changeset
214 "true if LIR requires src1 and dst to match in binary LIR ops") \
a61af66fc99e Initial load
duke
parents:
diff changeset
215 \
a61af66fc99e Initial load
duke
parents:
diff changeset
216 develop(intx, TraceLinearScanLevel, 0, \
a61af66fc99e Initial load
duke
parents:
diff changeset
217 "Debug levels for the linear scan allocator") \
a61af66fc99e Initial load
duke
parents:
diff changeset
218 \
a61af66fc99e Initial load
duke
parents:
diff changeset
219 develop(bool, StressLinearScan, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
220 "scramble block order used by LinearScan (stress test)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
221 \
a61af66fc99e Initial load
duke
parents:
diff changeset
222 product(bool, TimeLinearScan, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
223 "detailed timing of LinearScan phases") \
a61af66fc99e Initial load
duke
parents:
diff changeset
224 \
a61af66fc99e Initial load
duke
parents:
diff changeset
225 develop(bool, TimeEachLinearScan, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
226 "print detailed timing of each LinearScan run") \
a61af66fc99e Initial load
duke
parents:
diff changeset
227 \
a61af66fc99e Initial load
duke
parents:
diff changeset
228 develop(bool, CountLinearScan, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
229 "collect statistic counters during LinearScan") \
a61af66fc99e Initial load
duke
parents:
diff changeset
230 \
a61af66fc99e Initial load
duke
parents:
diff changeset
231 /* C1 variable */ \
a61af66fc99e Initial load
duke
parents:
diff changeset
232 \
a61af66fc99e Initial load
duke
parents:
diff changeset
233 develop(bool, C1Breakpoint, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
234 "Sets a breakpoint at entry of each compiled method") \
a61af66fc99e Initial load
duke
parents:
diff changeset
235 \
a61af66fc99e Initial load
duke
parents:
diff changeset
236 develop(bool, ImplicitDiv0Checks, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
237 "Use implicit division by zero checks") \
a61af66fc99e Initial load
duke
parents:
diff changeset
238 \
a61af66fc99e Initial load
duke
parents:
diff changeset
239 develop(bool, PinAllInstructions, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
240 "All instructions are pinned") \
a61af66fc99e Initial load
duke
parents:
diff changeset
241 \
a61af66fc99e Initial load
duke
parents:
diff changeset
242 develop(bool, UseFastNewInstance, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
243 "Use fast inlined instance allocation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
244 \
a61af66fc99e Initial load
duke
parents:
diff changeset
245 develop(bool, UseFastNewTypeArray, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
246 "Use fast inlined type array allocation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
247 \
a61af66fc99e Initial load
duke
parents:
diff changeset
248 develop(bool, UseFastNewObjectArray, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
249 "Use fast inlined object array allocation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
250 \
a61af66fc99e Initial load
duke
parents:
diff changeset
251 develop(bool, UseFastLocking, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
252 "Use fast inlined locking code") \
a61af66fc99e Initial load
duke
parents:
diff changeset
253 \
a61af66fc99e Initial load
duke
parents:
diff changeset
254 develop(bool, UseSlowPath, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
255 "For debugging: test slow cases by always using them") \
a61af66fc99e Initial load
duke
parents:
diff changeset
256 \
a61af66fc99e Initial load
duke
parents:
diff changeset
257 develop(bool, GenerateArrayStoreCheck, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
258 "Generates code for array store checks") \
a61af66fc99e Initial load
duke
parents:
diff changeset
259 \
a61af66fc99e Initial load
duke
parents:
diff changeset
260 develop(bool, DeoptC1, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
261 "Use deoptimization in C1") \
a61af66fc99e Initial load
duke
parents:
diff changeset
262 \
a61af66fc99e Initial load
duke
parents:
diff changeset
263 develop(bool, PrintBailouts, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
264 "Print bailout and its reason") \
a61af66fc99e Initial load
duke
parents:
diff changeset
265 \
a61af66fc99e Initial load
duke
parents:
diff changeset
266 develop(bool, TracePatching, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
267 "Trace patching of field access on uninitialized classes") \
a61af66fc99e Initial load
duke
parents:
diff changeset
268 \
a61af66fc99e Initial load
duke
parents:
diff changeset
269 develop(bool, PatchALot, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
270 "Marks all fields as having unloaded classes") \
a61af66fc99e Initial load
duke
parents:
diff changeset
271 \
a61af66fc99e Initial load
duke
parents:
diff changeset
272 develop(bool, PrintNotLoaded, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
273 "Prints where classes are not loaded during code generation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
274 \
a61af66fc99e Initial load
duke
parents:
diff changeset
275 develop(bool, PrintLIR, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
276 "print low-level IR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
277 \
a61af66fc99e Initial load
duke
parents:
diff changeset
278 develop(bool, BailoutAfterHIR, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
279 "bailout of compilation after building of HIR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
280 \
a61af66fc99e Initial load
duke
parents:
diff changeset
281 develop(bool, BailoutAfterLIR, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
282 "bailout of compilation after building of LIR") \
a61af66fc99e Initial load
duke
parents:
diff changeset
283 \
a61af66fc99e Initial load
duke
parents:
diff changeset
284 develop(bool, BailoutOnExceptionHandlers, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
285 "bailout of compilation for methods with exception handlers") \
a61af66fc99e Initial load
duke
parents:
diff changeset
286 \
a61af66fc99e Initial load
duke
parents:
diff changeset
287 develop(bool, InstallMethods, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
288 "Install methods at the end of successful compilations") \
a61af66fc99e Initial load
duke
parents:
diff changeset
289 \
a61af66fc99e Initial load
duke
parents:
diff changeset
290 product(intx, CompilationRepeat, 0, \
a61af66fc99e Initial load
duke
parents:
diff changeset
291 "Number of times to recompile method before returning result") \
a61af66fc99e Initial load
duke
parents:
diff changeset
292 \
3896
b346f13112d8 7085279: C1 overflows code buffer with VerifyOops and CompressedOops
iveresov
parents: 2426
diff changeset
293 develop(intx, NMethodSizeLimit, (64*K)*wordSize, \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
294 "Maximum size of a compiled method.") \
a61af66fc99e Initial load
duke
parents:
diff changeset
295 \
a61af66fc99e Initial load
duke
parents:
diff changeset
296 develop(bool, TraceFPUStack, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
297 "Trace emulation of the FPU stack (intel only)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
298 \
a61af66fc99e Initial load
duke
parents:
diff changeset
299 develop(bool, TraceFPURegisterUsage, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
300 "Trace usage of FPU registers at start of blocks (intel only)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
301 \
a61af66fc99e Initial load
duke
parents:
diff changeset
302 develop(bool, OptimizeUnsafes, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
303 "Optimize raw unsafe ops") \
a61af66fc99e Initial load
duke
parents:
diff changeset
304 \
a61af66fc99e Initial load
duke
parents:
diff changeset
305 develop(bool, PrintUnsafeOptimization, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
306 "Print optimization of raw unsafe ops") \
a61af66fc99e Initial load
duke
parents:
diff changeset
307 \
a61af66fc99e Initial load
duke
parents:
diff changeset
308 develop(intx, InstructionCountCutoff, 37000, \
a61af66fc99e Initial load
duke
parents:
diff changeset
309 "If GraphBuilder adds this many instructions, bails out") \
a61af66fc99e Initial load
duke
parents:
diff changeset
310 \
a61af66fc99e Initial load
duke
parents:
diff changeset
311 product_pd(intx, SafepointPollOffset, \
a61af66fc99e Initial load
duke
parents:
diff changeset
312 "Offset added to polling address (Intel only)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
313 \
a61af66fc99e Initial load
duke
parents:
diff changeset
314 develop(bool, ComputeExactFPURegisterUsage, true, \
a61af66fc99e Initial load
duke
parents:
diff changeset
315 "Compute additional live set for fpu registers to simplify fpu stack merge (Intel only)") \
a61af66fc99e Initial load
duke
parents:
diff changeset
316 \
1783
d5d065957597 6953144: Tiered compilation
iveresov
parents: 1552
diff changeset
317 product(bool, C1ProfileCalls, true, \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
318 "Profile calls when generating code for updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
319 \
1783
d5d065957597 6953144: Tiered compilation
iveresov
parents: 1552
diff changeset
320 product(bool, C1ProfileVirtualCalls, true, \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
321 "Profile virtual calls when generating code for updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
322 \
1783
d5d065957597 6953144: Tiered compilation
iveresov
parents: 1552
diff changeset
323 product(bool, C1ProfileInlinedCalls, true, \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
324 "Profile inlined calls when generating code for updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
325 \
1783
d5d065957597 6953144: Tiered compilation
iveresov
parents: 1552
diff changeset
326 product(bool, C1ProfileBranches, true, \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
327 "Profile branches when generating code for updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
328 \
1783
d5d065957597 6953144: Tiered compilation
iveresov
parents: 1552
diff changeset
329 product(bool, C1ProfileCheckcasts, true, \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
330 "Profile checkcasts when generating code for updating MDOs") \
a61af66fc99e Initial load
duke
parents:
diff changeset
331 \
1783
d5d065957597 6953144: Tiered compilation
iveresov
parents: 1552
diff changeset
332 product(bool, C1OptimizeVirtualCallProfiling, true, \
d5d065957597 6953144: Tiered compilation
iveresov
parents: 1552
diff changeset
333 "Use CHA and exact type results at call sites when updating MDOs")\
0
a61af66fc99e Initial load
duke
parents:
diff changeset
334 \
1783
d5d065957597 6953144: Tiered compilation
iveresov
parents: 1552
diff changeset
335 product(bool, C1UpdateMethodData, trueInTiered, \
12160
f98f5d48f511 7199175: JSR 292: C1 needs patching when invokedynamic/invokehandle call site is not linked
roland
parents: 8860
diff changeset
336 "Update MethodData*s in Tier1-generated code") \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
337 \
a61af66fc99e Initial load
duke
parents:
diff changeset
338 develop(bool, PrintCFGToFile, false, \
a61af66fc99e Initial load
duke
parents:
diff changeset
339 "print control flow graph to a separate file during compilation") \
a61af66fc99e Initial load
duke
parents:
diff changeset
340 \
12160
f98f5d48f511 7199175: JSR 292: C1 needs patching when invokedynamic/invokehandle call site is not linked
roland
parents: 8860
diff changeset
341 diagnostic(bool, C1PatchInvokeDynamic, true, \
f98f5d48f511 7199175: JSR 292: C1 needs patching when invokedynamic/invokehandle call site is not linked
roland
parents: 8860
diff changeset
342 "Patch invokedynamic appendix not known at compile time") \
f98f5d48f511 7199175: JSR 292: C1 needs patching when invokedynamic/invokehandle call site is not linked
roland
parents: 8860
diff changeset
343 \
0
a61af66fc99e Initial load
duke
parents:
diff changeset
344
a61af66fc99e Initial load
duke
parents:
diff changeset
345
a61af66fc99e Initial load
duke
parents:
diff changeset
346 // Read default values for c1 globals
a61af66fc99e Initial load
duke
parents:
diff changeset
347
12160
f98f5d48f511 7199175: JSR 292: C1 needs patching when invokedynamic/invokehandle call site is not linked
roland
parents: 8860
diff changeset
348 C1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG)
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
349
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1899
diff changeset
350 #endif // SHARE_VM_C1_C1_GLOBALS_HPP