comparison src/share/vm/runtime/globals.hpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents 9f4457a14b58
children 018d5b58dd4f
comparison
equal deleted inserted replaced
110:a49a647afe9a 113:ba764ed4b6f2
234 #define falseInTiered false 234 #define falseInTiered false
235 #else 235 #else
236 #define trueInTiered false 236 #define trueInTiered false
237 #define falseInTiered true 237 #define falseInTiered true
238 #endif 238 #endif
239
240 239
241 // develop flags are settable / visible only during development and are constant in the PRODUCT version 240 // develop flags are settable / visible only during development and are constant in the PRODUCT version
242 // product flags are always settable / visible 241 // product flags are always settable / visible
243 // notproduct flags are settable / visible only during development and are not declared in the PRODUCT version 242 // notproduct flags are settable / visible only during development and are not declared in the PRODUCT version
244 243
284 // and not reuse state related to the flag state at any given time. 283 // and not reuse state related to the flag state at any given time.
285 // 284 //
286 // Note that when there is a need to support develop flags to be writeable, 285 // Note that when there is a need to support develop flags to be writeable,
287 // it can be done in the same way as product_rw. 286 // it can be done in the same way as product_rw.
288 287
289 #define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, diagnostic, notproduct, manageable, product_rw) \ 288 #define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, diagnostic, notproduct, manageable, product_rw, lp64_product) \
289 \
290 lp64_product(bool, UseCompressedOops, false, \
291 "Use 32-bit object references in 64-bit VM. " \
292 "lp64_product means flag is always constant in 32 bit VM") \
290 \ 293 \
291 /* UseMembar is theoretically a temp flag used for memory barrier \ 294 /* UseMembar is theoretically a temp flag used for memory barrier \
292 * removal testing. It was supposed to be removed before FCS but has \ 295 * removal testing. It was supposed to be removed before FCS but has \
293 * been re-added (see 6401008) */ \ 296 * been re-added (see 6401008) */ \
294 product(bool, UseMembar, false, \ 297 product(bool, UseMembar, false, \
3207 #else 3210 #else
3208 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; 3211 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name;
3209 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name; 3212 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name;
3210 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name; 3213 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name;
3211 #endif 3214 #endif
3215 // Special LP64 flags, product only needed for now.
3216 #ifdef _LP64
3217 #define DECLARE_LP64_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
3218 #else
3219 #define DECLARE_LP64_PRODUCT_FLAG(type, name, value, doc) const type name = value;
3220 #endif // _LP64
3212 3221
3213 // Implementation macros 3222 // Implementation macros
3214 #define MATERIALIZE_PRODUCT_FLAG(type, name, value, doc) type name = value; 3223 #define MATERIALIZE_PRODUCT_FLAG(type, name, value, doc) type name = value;
3215 #define MATERIALIZE_PD_PRODUCT_FLAG(type, name, doc) type name = pd_##name; 3224 #define MATERIALIZE_PD_PRODUCT_FLAG(type, name, doc) type name = pd_##name;
3216 #define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc) type name = value; 3225 #define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc) type name = value;
3223 #else 3232 #else
3224 #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type name = value; 3233 #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type name = value;
3225 #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) type name = pd_##name; 3234 #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) type name = pd_##name;
3226 #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc) type name = value; 3235 #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc) type name = value;
3227 #endif 3236 #endif
3228 3237 #ifdef _LP64
3229 RUNTIME_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG) 3238 #define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) type name = value;
3239 #else
3240 #define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) /* flag is constant */
3241 #endif // _LP64
3242
3243 RUNTIME_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG, DECLARE_LP64_PRODUCT_FLAG)
3230 3244
3231 RUNTIME_OS_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG) 3245 RUNTIME_OS_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG)