Mercurial > hg > graal-compiler
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) |