annotate src/share/vm/runtime/globals_extension.hpp @ 9126:bc26f978b0ce

HotSpotResolvedObjectType: implement hasFinalizeSubclass() correctly don't use the (wrong) cached value, but ask the runtime on each request. Fixes regression on xml.* benchmarks @ specjvm2008. The problem was: After the constructor of Object was deoptimized due to an assumption violation, it was recompiled again after some time. However, on recompilation, the value of hasFinalizeSubclass for the class was not updated and it was compiled again with a, now wrong, assumption, which then triggers deoptimization again. This was repeated until it hit the recompilation limit (defined by PerMethodRecompilationCutoff), and therefore only executed by the interpreter from now on, causing the performance regression.
author Bernhard Urban <bernhard.urban@jku.at>
date Mon, 15 Apr 2013 19:54:58 +0200
parents 5fc51c1ecdeb
children cefad50507d8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 /*
6633
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
2 * Copyright (c) 2003, 2012, 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: 1080
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1080
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: 1080
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: 1552
diff changeset
25 #ifndef SHARE_VM_RUNTIME_GLOBALS_EXTENSION_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1552
diff changeset
26 #define SHARE_VM_RUNTIME_GLOBALS_EXTENSION_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1552
diff changeset
27
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1552
diff changeset
28 #include "runtime/globals.hpp"
8001
db9981fd3124 8005915: Unify SERIALGC and INCLUDE_ALTERNATE_GCS
jprovino
parents: 6854
diff changeset
29 #include "utilities/macros.hpp"
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1552
diff changeset
30 #include "utilities/top.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1552
diff changeset
31
0
a61af66fc99e Initial load
duke
parents:
diff changeset
32 // Construct enum of Flag_<cmdline-arg> constants.
a61af66fc99e Initial load
duke
parents:
diff changeset
33
a61af66fc99e Initial load
duke
parents:
diff changeset
34 // Parens left off in the following for the enum decl below.
a61af66fc99e Initial load
duke
parents:
diff changeset
35 #define FLAG_MEMBER(flag) Flag_##flag
a61af66fc99e Initial load
duke
parents:
diff changeset
36
a61af66fc99e Initial load
duke
parents:
diff changeset
37 #define RUNTIME_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
38 #define RUNTIME_PD_PRODUCT_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
39 #define RUNTIME_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
350
d28aa69f0959 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 342
diff changeset
40 #define RUNTIME_EXPERIMENTAL_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
0
a61af66fc99e Initial load
duke
parents:
diff changeset
41 #define RUNTIME_MANAGEABLE_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
42 #define RUNTIME_PRODUCT_RW_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
43 #ifdef PRODUCT
a61af66fc99e Initial load
duke
parents:
diff changeset
44 #define RUNTIME_DEVELOP_FLAG_MEMBER(type, name, value, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
45 #define RUNTIME_PD_DEVELOP_FLAG_MEMBER(type, name, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
46 #define RUNTIME_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc)
a61af66fc99e Initial load
duke
parents:
diff changeset
47 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
48 #define RUNTIME_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
49 #define RUNTIME_PD_DEVELOP_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
50 #define RUNTIME_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
51 #endif
113
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
52 #ifdef _LP64
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
53 #define RUNTIME_LP64_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
54 #else
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
55 #define RUNTIME_LP64_PRODUCT_FLAG_MEMBER(type, name, value, doc) /* flag is constant */
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
56 #endif // _LP64
0
a61af66fc99e Initial load
duke
parents:
diff changeset
57
a61af66fc99e Initial load
duke
parents:
diff changeset
58 #define C1_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
59 #define C1_PD_PRODUCT_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
60 #ifdef PRODUCT
a61af66fc99e Initial load
duke
parents:
diff changeset
61 #define C1_DEVELOP_FLAG_MEMBER(type, name, value, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
62 #define C1_PD_DEVELOP_FLAG_MEMBER(type, name, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
63 #define C1_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc)
a61af66fc99e Initial load
duke
parents:
diff changeset
64 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
65 #define C1_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
66 #define C1_PD_DEVELOP_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
67 #define C1_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
68 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
69
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
70 #define GRAAL_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
71 #define GRAAL_PD_PRODUCT_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name),
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
72 #ifdef PRODUCT
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
73 #define GRAAL_DEVELOP_FLAG_MEMBER(type, name, value, doc) /* flag is constant */
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
74 #define GRAAL_PD_DEVELOP_FLAG_MEMBER(type, name, doc) /* flag is constant */
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
75 #define GRAAL_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc)
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
76 #else
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
77 #define GRAAL_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
78 #define GRAAL_PD_DEVELOP_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name),
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
79 #define GRAAL_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
80 #endif
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
81
0
a61af66fc99e Initial load
duke
parents:
diff changeset
82 #define C2_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
83 #define C2_PD_PRODUCT_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
84 #define C2_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
1080
7c57aead6d3e 6892658: C2 should optimize some stringbuilder patterns
never
parents: 1064
diff changeset
85 #define C2_EXPERIMENTAL_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
0
a61af66fc99e Initial load
duke
parents:
diff changeset
86 #ifdef PRODUCT
a61af66fc99e Initial load
duke
parents:
diff changeset
87 #define C2_DEVELOP_FLAG_MEMBER(type, name, value, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
88 #define C2_PD_DEVELOP_FLAG_MEMBER(type, name, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
89 #define C2_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc)
a61af66fc99e Initial load
duke
parents:
diff changeset
90 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
91 #define C2_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
92 #define C2_PD_DEVELOP_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
93 #define C2_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a61af66fc99e Initial load
duke
parents:
diff changeset
94 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
95
6633
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
96 #define ARCH_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
97 #define ARCH_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
98 #define ARCH_EXPERIMENTAL_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
99 #ifdef PRODUCT
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
100 #define ARCH_DEVELOP_FLAG_MEMBER(type, name, value, doc) /* flag is constant */
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
101 #define ARCH_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc)
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
102 #else
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
103 #define ARCH_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
104 #define ARCH_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
105 #endif
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
106
0
a61af66fc99e Initial load
duke
parents:
diff changeset
107 typedef enum {
4088
358eca91be48 7116730: Revert 7116481: Commercial features in Hotspot must be gated by a switch
phh
parents: 4087
diff changeset
108 RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, RUNTIME_PD_DEVELOP_FLAG_MEMBER, RUNTIME_PRODUCT_FLAG_MEMBER, RUNTIME_PD_PRODUCT_FLAG_MEMBER, RUNTIME_DIAGNOSTIC_FLAG_MEMBER, RUNTIME_EXPERIMENTAL_FLAG_MEMBER, RUNTIME_NOTPRODUCT_FLAG_MEMBER, RUNTIME_MANAGEABLE_FLAG_MEMBER, RUNTIME_PRODUCT_RW_FLAG_MEMBER, RUNTIME_LP64_PRODUCT_FLAG_MEMBER)
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
109 RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, RUNTIME_PD_DEVELOP_FLAG_MEMBER, RUNTIME_PRODUCT_FLAG_MEMBER, RUNTIME_PD_PRODUCT_FLAG_MEMBER, RUNTIME_DIAGNOSTIC_FLAG_MEMBER, RUNTIME_NOTPRODUCT_FLAG_MEMBER)
8001
db9981fd3124 8005915: Unify SERIALGC and INCLUDE_ALTERNATE_GCS
jprovino
parents: 6854
diff changeset
110 #if INCLUDE_ALL_GCS
350
d28aa69f0959 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 342
diff changeset
111 G1_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, RUNTIME_PD_DEVELOP_FLAG_MEMBER, RUNTIME_PRODUCT_FLAG_MEMBER, RUNTIME_PD_PRODUCT_FLAG_MEMBER, RUNTIME_DIAGNOSTIC_FLAG_MEMBER, RUNTIME_EXPERIMENTAL_FLAG_MEMBER, RUNTIME_NOTPRODUCT_FLAG_MEMBER, RUNTIME_MANAGEABLE_FLAG_MEMBER, RUNTIME_PRODUCT_RW_FLAG_MEMBER)
8001
db9981fd3124 8005915: Unify SERIALGC and INCLUDE_ALTERNATE_GCS
jprovino
parents: 6854
diff changeset
112 #endif // INCLUDE_ALL_GCS
0
a61af66fc99e Initial load
duke
parents:
diff changeset
113 #ifdef COMPILER1
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
114 C1_FLAGS(C1_DEVELOP_FLAG_MEMBER, C1_PD_DEVELOP_FLAG_MEMBER, C1_PRODUCT_FLAG_MEMBER, C1_PD_PRODUCT_FLAG_MEMBER, C1_NOTPRODUCT_FLAG_MEMBER)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
115 #endif
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
116 #ifdef GRAAL
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
117 GRAAL_FLAGS(GRAAL_DEVELOP_FLAG_MEMBER, GRAAL_PD_DEVELOP_FLAG_MEMBER, GRAAL_PRODUCT_FLAG_MEMBER, GRAAL_PD_PRODUCT_FLAG_MEMBER, GRAAL_NOTPRODUCT_FLAG_MEMBER)
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
118 #endif
0
a61af66fc99e Initial load
duke
parents:
diff changeset
119 #ifdef COMPILER2
1080
7c57aead6d3e 6892658: C2 should optimize some stringbuilder patterns
never
parents: 1064
diff changeset
120 C2_FLAGS(C2_DEVELOP_FLAG_MEMBER, C2_PD_DEVELOP_FLAG_MEMBER, C2_PRODUCT_FLAG_MEMBER, C2_PD_PRODUCT_FLAG_MEMBER, C2_DIAGNOSTIC_FLAG_MEMBER, C2_EXPERIMENTAL_FLAG_MEMBER, C2_NOTPRODUCT_FLAG_MEMBER)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
121 #endif
6633
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
122 ARCH_FLAGS(ARCH_DEVELOP_FLAG_MEMBER, ARCH_PRODUCT_FLAG_MEMBER, ARCH_DIAGNOSTIC_FLAG_MEMBER, ARCH_EXPERIMENTAL_FLAG_MEMBER, ARCH_NOTPRODUCT_FLAG_MEMBER)
4107
cd00eaeebef6 7117389: Add a framework for vendor-specific command line switch extensions to Hotspot
phh
parents: 4088
diff changeset
123 COMMANDLINEFLAG_EXT
0
a61af66fc99e Initial load
duke
parents:
diff changeset
124 NUM_CommandLineFlag
a61af66fc99e Initial load
duke
parents:
diff changeset
125 } CommandLineFlag;
a61af66fc99e Initial load
duke
parents:
diff changeset
126
a61af66fc99e Initial load
duke
parents:
diff changeset
127 // Construct enum of Flag_<cmdline-arg>_<type> constants.
a61af66fc99e Initial load
duke
parents:
diff changeset
128
a61af66fc99e Initial load
duke
parents:
diff changeset
129 #define FLAG_MEMBER_WITH_TYPE(flag,type) Flag_##flag##_##type
a61af66fc99e Initial load
duke
parents:
diff changeset
130
a61af66fc99e Initial load
duke
parents:
diff changeset
131 #define RUNTIME_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
132 #define RUNTIME_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
133 #define RUNTIME_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
350
d28aa69f0959 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 342
diff changeset
134 #define RUNTIME_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
0
a61af66fc99e Initial load
duke
parents:
diff changeset
135 #define RUNTIME_MANAGEABLE_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
136 #define RUNTIME_PRODUCT_RW_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
137 #ifdef PRODUCT
a61af66fc99e Initial load
duke
parents:
diff changeset
138 #define RUNTIME_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
139 #define RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
140 #define RUNTIME_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)
a61af66fc99e Initial load
duke
parents:
diff changeset
141 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
142 #define RUNTIME_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
143 #define RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
144 #define RUNTIME_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
145 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
146
a61af66fc99e Initial load
duke
parents:
diff changeset
147 #define C1_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
148 #define C1_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
149 #ifdef PRODUCT
a61af66fc99e Initial load
duke
parents:
diff changeset
150 #define C1_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
151 #define C1_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
152 #define C1_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)
a61af66fc99e Initial load
duke
parents:
diff changeset
153 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
154 #define C1_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
155 #define C1_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
156 #define C1_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
157 #endif
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
158 #define GRAAL_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
159 #define GRAAL_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type),
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
160 #ifdef PRODUCT
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
161 #define GRAAL_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) /* flag is constant */
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
162 #define GRAAL_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) /* flag is constant */
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
163 #define GRAAL_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
164 #else
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
165 #define GRAAL_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
166 #define GRAAL_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type),
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
167 #define GRAAL_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
168 #endif
113
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
169 #ifdef _LP64
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
170 #define RUNTIME_LP64_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
171 #else
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
172 #define RUNTIME_LP64_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) /* flag is constant */
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
173 #endif // _LP64
0
a61af66fc99e Initial load
duke
parents:
diff changeset
174
a61af66fc99e Initial load
duke
parents:
diff changeset
175 #define C2_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
176 #define C2_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
177 #define C2_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
1080
7c57aead6d3e 6892658: C2 should optimize some stringbuilder patterns
never
parents: 1064
diff changeset
178 #define C2_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
0
a61af66fc99e Initial load
duke
parents:
diff changeset
179 #ifdef PRODUCT
a61af66fc99e Initial load
duke
parents:
diff changeset
180 #define C2_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
181 #define C2_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) /* flag is constant */
a61af66fc99e Initial load
duke
parents:
diff changeset
182 #define C2_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)
a61af66fc99e Initial load
duke
parents:
diff changeset
183 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
184 #define C2_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
185 #define C2_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
186 #define C2_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a61af66fc99e Initial load
duke
parents:
diff changeset
187 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
188
6633
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
189 #define ARCH_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
190 #define ARCH_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
191 #define ARCH_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
192 #ifdef PRODUCT
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
193 #define ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) /* flag is constant */
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
194 #define ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
195 #else
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
196 #define ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
197 #define ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
198 #endif
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
199
0
a61af66fc99e Initial load
duke
parents:
diff changeset
200 typedef enum {
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
201 RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
202 RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
203 RUNTIME_PRODUCT_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
204 RUNTIME_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE,
0
a61af66fc99e Initial load
duke
parents:
diff changeset
205 RUNTIME_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE,
350
d28aa69f0959 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 342
diff changeset
206 RUNTIME_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE,
0
a61af66fc99e Initial load
duke
parents:
diff changeset
207 RUNTIME_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE,
a61af66fc99e Initial load
duke
parents:
diff changeset
208 RUNTIME_MANAGEABLE_FLAG_MEMBER_WITH_TYPE,
113
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
209 RUNTIME_PRODUCT_RW_FLAG_MEMBER_WITH_TYPE,
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 13
diff changeset
210 RUNTIME_LP64_PRODUCT_FLAG_MEMBER_WITH_TYPE)
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
211 RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
212 RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
213 RUNTIME_PRODUCT_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
214 RUNTIME_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
215 RUNTIME_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
216 RUNTIME_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE)
8001
db9981fd3124 8005915: Unify SERIALGC and INCLUDE_ALTERNATE_GCS
jprovino
parents: 6854
diff changeset
217 #if INCLUDE_ALL_GCS
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
218 G1_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
219 RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
220 RUNTIME_PRODUCT_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
221 RUNTIME_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
222 RUNTIME_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE,
350
d28aa69f0959 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 342
diff changeset
223 RUNTIME_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE,
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
224 RUNTIME_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
225 RUNTIME_MANAGEABLE_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
226 RUNTIME_PRODUCT_RW_FLAG_MEMBER_WITH_TYPE)
8001
db9981fd3124 8005915: Unify SERIALGC and INCLUDE_ALTERNATE_GCS
jprovino
parents: 6854
diff changeset
227 #endif // INCLUDE_ALL_GCS
0
a61af66fc99e Initial load
duke
parents:
diff changeset
228 #ifdef COMPILER1
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
229 C1_FLAGS(C1_DEVELOP_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
230 C1_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
231 C1_PRODUCT_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
232 C1_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
233 C1_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
234 #endif
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
235 #ifdef GRAAL
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
236 GRAAL_FLAGS(GRAAL_DEVELOP_FLAG_MEMBER_WITH_TYPE,
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
237 GRAAL_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE,
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
238 GRAAL_PRODUCT_FLAG_MEMBER_WITH_TYPE,
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
239 GRAAL_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE,
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
240 GRAAL_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE)
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents: 6854
diff changeset
241 #endif
0
a61af66fc99e Initial load
duke
parents:
diff changeset
242 #ifdef COMPILER2
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
243 C2_FLAGS(C2_DEVELOP_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
244 C2_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
245 C2_PRODUCT_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
246 C2_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
247 C2_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE,
1080
7c57aead6d3e 6892658: C2 should optimize some stringbuilder patterns
never
parents: 1064
diff changeset
248 C2_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE,
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 113
diff changeset
249 C2_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
250 #endif
6633
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
251 ARCH_FLAGS(ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE,
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
252 ARCH_PRODUCT_FLAG_MEMBER_WITH_TYPE,
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
253 ARCH_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE,
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
254 ARCH_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE,
a5dd6e3ef9f3 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 4107
diff changeset
255 ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE)
4107
cd00eaeebef6 7117389: Add a framework for vendor-specific command line switch extensions to Hotspot
phh
parents: 4088
diff changeset
256 COMMANDLINEFLAGWITHTYPE_EXT
0
a61af66fc99e Initial load
duke
parents:
diff changeset
257 NUM_CommandLineFlagWithType
a61af66fc99e Initial load
duke
parents:
diff changeset
258 } CommandLineFlagWithType;
a61af66fc99e Initial load
duke
parents:
diff changeset
259
a61af66fc99e Initial load
duke
parents:
diff changeset
260 #define FLAG_IS_DEFAULT(name) (CommandLineFlagsEx::is_default(FLAG_MEMBER(name)))
13
183f41cf8bfe 6557851: CMS: ergonomics defaults are not set with FLAG_SET_ERGO
jmasa
parents: 0
diff changeset
261 #define FLAG_IS_ERGO(name) (CommandLineFlagsEx::is_ergo(FLAG_MEMBER(name)))
183f41cf8bfe 6557851: CMS: ergonomics defaults are not set with FLAG_SET_ERGO
jmasa
parents: 0
diff changeset
262 #define FLAG_IS_CMDLINE(name) (CommandLineFlagsEx::is_cmdline(FLAG_MEMBER(name)))
0
a61af66fc99e Initial load
duke
parents:
diff changeset
263
a61af66fc99e Initial load
duke
parents:
diff changeset
264 #define FLAG_SET_DEFAULT(name, value) ((name) = (value))
a61af66fc99e Initial load
duke
parents:
diff changeset
265
a61af66fc99e Initial load
duke
parents:
diff changeset
266 #define FLAG_SET_CMDLINE(type, name, value) (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value), COMMAND_LINE))
a61af66fc99e Initial load
duke
parents:
diff changeset
267 #define FLAG_SET_ERGO(type, name, value) (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value), ERGONOMIC))
a61af66fc99e Initial load
duke
parents:
diff changeset
268
a61af66fc99e Initial load
duke
parents:
diff changeset
269 // Can't put the following in CommandLineFlags because
a61af66fc99e Initial load
duke
parents:
diff changeset
270 // of a circular dependency on the enum definition.
a61af66fc99e Initial load
duke
parents:
diff changeset
271 class CommandLineFlagsEx : CommandLineFlags {
a61af66fc99e Initial load
duke
parents:
diff changeset
272 public:
a61af66fc99e Initial load
duke
parents:
diff changeset
273 static void boolAtPut(CommandLineFlagWithType flag, bool value, FlagValueOrigin origin);
a61af66fc99e Initial load
duke
parents:
diff changeset
274 static void intxAtPut(CommandLineFlagWithType flag, intx value, FlagValueOrigin origin);
a61af66fc99e Initial load
duke
parents:
diff changeset
275 static void uintxAtPut(CommandLineFlagWithType flag, uintx value, FlagValueOrigin origin);
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 356
diff changeset
276 static void uint64_tAtPut(CommandLineFlagWithType flag, uint64_t value, FlagValueOrigin origin);
0
a61af66fc99e Initial load
duke
parents:
diff changeset
277 static void doubleAtPut(CommandLineFlagWithType flag, double value, FlagValueOrigin origin);
a61af66fc99e Initial load
duke
parents:
diff changeset
278 static void ccstrAtPut(CommandLineFlagWithType flag, ccstr value, FlagValueOrigin origin);
a61af66fc99e Initial load
duke
parents:
diff changeset
279
a61af66fc99e Initial load
duke
parents:
diff changeset
280 static bool is_default(CommandLineFlag flag);
13
183f41cf8bfe 6557851: CMS: ergonomics defaults are not set with FLAG_SET_ERGO
jmasa
parents: 0
diff changeset
281 static bool is_ergo(CommandLineFlag flag);
183f41cf8bfe 6557851: CMS: ergonomics defaults are not set with FLAG_SET_ERGO
jmasa
parents: 0
diff changeset
282 static bool is_cmdline(CommandLineFlag flag);
0
a61af66fc99e Initial load
duke
parents:
diff changeset
283 };
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1552
diff changeset
284
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1552
diff changeset
285 #endif // SHARE_VM_RUNTIME_GLOBALS_EXTENSION_HPP