605 // The list of product_rw flags are internal/private flags which
606 // may be changed/removed in a future release. It can be set
607 // through the management interface to get/set value
608 // when the name of flag is supplied.
609 //
610 // A flag can be made as "product_rw" only if
611 // - the VM implementation supports dynamic setting of the flag.
612 // This implies that the VM must *always* query the flag variable
613 // and not reuse state related to the flag state at any given time.
614 //
615 // Note that when there is a need to support develop flags to be writeable,
616 // it can be done in the same way as product_rw.
617 //
618 // range is a macro that will expand to min and max arguments for range
619 // checking code if provided - see commandLineFlagRangeList.hpp
620 //
621 // constraint is a macro that will expand to custom function call
622 // for constraint checking if provided - see commandLineFlagConstraintList.hpp
623 //
624
625 #define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, diagnostic, experimental, notproduct, manageable, product_rw, lp64_product, range, constraint) \
626 \
627 lp64_product(bool, UseCompressedOops, false, \
628 "Use 32-bit object references in 64-bit VM. " \
629 "lp64_product means flag is always constant in 32 bit VM") \
630 \
631 lp64_product(bool, UseCompressedClassPointers, false, \
632 "Use 32-bit class pointers in 64-bit VM. " \
633 "lp64_product means flag is always constant in 32 bit VM") \
634 \
635 notproduct(bool, CheckCompressedOops, true, \
636 "Generate checks in encoding/decoding code in debug VM") \
637 \
638 product(uintx, HeapSearchSteps, 3 PPC64_ONLY(+17), \
639 "Heap allocation steps through preferred address regions to find" \
640 " where it can allocate the heap. Number of steps to take per " \
641 "region.") \
642 range(1, max_uintx) \
643 \
644 lp64_product(intx, ObjectAlignmentInBytes, 8, \
645 "Default object alignment in bytes, 8 is minimum") \
2484 \
2485 product(intx, CompilationPolicyChoice, 0, \
2486 "which compilation policy (0-3)") \
2487 range(0, 3) \
2488 \
2489 develop(bool, UseStackBanging, true, \
2490 "use stack banging for stack overflow checks (required for " \
2491 "proper StackOverflow handling; disable only to measure cost " \
2492 "of stackbanging)") \
2493 \
2494 develop(bool, UseStrictFP, true, \
2495 "use strict fp if modifier strictfp is set") \
2496 \
2497 develop(bool, GenerateSynchronizationCode, true, \
2498 "generate locking/unlocking code for synchronized methods and " \
2499 "monitors") \
2500 \
2501 develop(bool, GenerateRangeChecks, true, \
2502 "Generate range checks for array accesses") \
2503 \
2504 develop_pd(bool, ImplicitNullChecks, \
2505 "Generate code for implicit null checks") \
2506 \
2507 product_pd(bool, TrapBasedNullChecks, \
2508 "Generate code for null checks that uses a cmp and trap " \
2509 "instruction raising SIGTRAP. This is only used if an access to" \
2510 "null (+offset) will not raise a SIGSEGV, i.e.," \
2511 "ImplicitNullChecks don't work (PPC64).") \
2512 \
2513 product(bool, PrintSafepointStatistics, false, \
2514 "Print statistics about safepoint synchronization") \
2515 \
2516 product(intx, PrintSafepointStatisticsCount, 300, \
2517 "Total number of safepoint statistics collected " \
2518 "before printing them out") \
2519 range(1, max_intx) \
2520 \
2521 product(intx, PrintSafepointStatisticsTimeout, -1, \
2522 "Print safepoint statistics only when safepoint takes " \
2523 "more than PrintSafepointSatisticsTimeout in millis") \
2524 LP64_ONLY(range(-1, max_intx/MICROUNITS)) \
3118 product(intx, PerMethodTrapLimit, 100, \
3119 "Limit on traps (of one kind) in a method (includes inlines)") \
3120 range(0, max_jint) \
3121 \
3122 experimental(intx, PerMethodSpecTrapLimit, 5000, \
3123 "Limit on speculative traps (of one kind) in a method " \
3124 "(includes inlines)") \
3125 range(0, max_jint) \
3126 \
3127 product(intx, PerBytecodeTrapLimit, 4, \
3128 "Limit on traps (of one kind) at a particular BCI") \
3129 range(0, max_jint) \
3130 \
3131 experimental(intx, SpecTrapLimitExtraEntries, 3, \
3132 "Extra method data trap entries for speculation") \
3133 \
3134 develop(intx, InlineFrequencyRatio, 20, \
3135 "Ratio of call site execution to caller method invocation") \
3136 range(0, max_jint) \
3137 \
3138 develop_pd(intx, InlineFrequencyCount, \
3139 "Count of call site execution necessary to trigger frequent " \
3140 "inlining") \
3141 range(0, max_jint) \
3142 \
3143 develop(intx, InlineThrowCount, 50, \
3144 "Force inlining of interpreted methods that throw this often") \
3145 range(0, max_jint) \
3146 \
3147 develop(intx, InlineThrowMaxSize, 200, \
3148 "Force inlining of throwing methods smaller than this") \
3149 range(0, max_jint) \
3150 \
3151 develop(intx, ProfilerNodeSize, 1024, \
3152 "Size in K to allocate for the Profile Nodes of each thread") \
3153 range(0, 1024) \
3154 \
3155 /* gc parameters */ \
3156 product(size_t, InitialHeapSize, 0, \
3157 "Initial heap size (in bytes); zero means use ergonomics") \
3158 constraint(InitialHeapSizeConstraintFunc,AfterErgo) \
4099 diagnostic(bool, UseUnalignedAccesses, false, \
4100 "Use unaligned memory accesses in Unsafe") \
4101 \
4102 product_pd(bool, PreserveFramePointer, \
4103 "Use the FP register for holding the frame pointer " \
4104 "and not as a general purpose register.") \
4105 \
4106 diagnostic(bool, CheckIntrinsics, true, \
4107 "When a class C is loaded, check that " \
4108 "(1) all intrinsics defined by the VM for class C are present "\
4109 "in the loaded class file and are marked with the " \
4110 "@HotSpotIntrinsicCandidate annotation, that " \
4111 "(2) there is an intrinsic registered for all loaded methods " \
4112 "that are annotated with the @HotSpotIntrinsicCandidate " \
4113 "annotation, and that " \
4114 "(3) no orphan methods exist for class C (i.e., methods for " \
4115 "which the VM declares an intrinsic but that are not declared "\
4116 "in the loaded class C. " \
4117 "Check (3) is available only in debug builds.") \
4118 \
4119 develop_pd(intx, InitArrayShortSize, \
4120 "Threshold small size (in bytes) for clearing arrays. " \
4121 "Anything this size or smaller may get converted to discrete " \
4122 "scalar stores.") \
4123 range(0, max_intx) \
4124 constraint(InitArrayShortSizeConstraintFunc, AfterErgo) \
4125 \
4126 diagnostic(bool, CompilerDirectivesIgnoreCompileCommands, false, \
4127 "Disable backwards compatibility for compile commands.") \
4128 \
4129 diagnostic(bool, CompilerDirectivesPrint, false, \
4130 "Print compiler directives on installation.") \
4131 diagnostic(int, CompilerDirectivesLimit, 50, \
4132 "Limit on number of compiler directives.")
4133
4134
4135 /*
4136 * Macros for factoring of globals
4137 */
4138
4139 // Interface macros
4140 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
4141 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name;
4142 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
4143 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
4144 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
4145 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
4146 #ifdef PRODUCT
4147 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value;
4148 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name;
4149 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value;
4150 #else
4151 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name;
4152 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name;
4153 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name;
4154 #endif // PRODUCT
4155 // Special LP64 flags, product only needed for now.
4156 #ifdef _LP64
4157 #define DECLARE_LP64_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
4158 #else
4159 #define DECLARE_LP64_PRODUCT_FLAG(type, name, value, doc) const type name = value;
4160 #endif // _LP64
4161
4162 // Implementation macros
4163 #define MATERIALIZE_PRODUCT_FLAG(type, name, value, doc) type name = value;
4164 #define MATERIALIZE_PD_PRODUCT_FLAG(type, name, doc) type name = pd_##name;
4165 #define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc) type name = value;
4166 #define MATERIALIZE_EXPERIMENTAL_FLAG(type, name, value, doc) type name = value;
4167 #define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc) type name = value;
4168 #define MATERIALIZE_PRODUCT_RW_FLAG(type, name, value, doc) type name = value;
4169 #ifdef PRODUCT
4170 #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc)
4171 #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc)
4172 #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc)
4173 #else
4174 #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type name = value;
4175 #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) type name = pd_##name;
4176 #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc) type name = value;
4177 #endif // PRODUCT
4178 #ifdef _LP64
4179 #define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) type name = value;
4180 #else
4181 #define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) /* flag is constant */
4182 #endif // _LP64
4183
4184 // Only materialize src code for range checking when required, ignore otherwise
4185 #define IGNORE_RANGE(a, b)
4186 // Only materialize src code for contraint checking when required, ignore otherwise
4187 #define IGNORE_CONSTRAINT(func,type)
4188
4189 RUNTIME_FLAGS(DECLARE_DEVELOPER_FLAG, \
4190 DECLARE_PD_DEVELOPER_FLAG, \
4191 DECLARE_PRODUCT_FLAG, \
4192 DECLARE_PD_PRODUCT_FLAG, \
4193 DECLARE_DIAGNOSTIC_FLAG, \
4194 DECLARE_EXPERIMENTAL_FLAG, \
4195 DECLARE_NOTPRODUCT_FLAG, \
4196 DECLARE_MANAGEABLE_FLAG, \
4197 DECLARE_PRODUCT_RW_FLAG, \
4198 DECLARE_LP64_PRODUCT_FLAG, \
4199 IGNORE_RANGE, \
4200 IGNORE_CONSTRAINT)
4201
4202 RUNTIME_OS_FLAGS(DECLARE_DEVELOPER_FLAG, \
4203 DECLARE_PD_DEVELOPER_FLAG, \
4204 DECLARE_PRODUCT_FLAG, \
4205 DECLARE_PD_PRODUCT_FLAG, \
4206 DECLARE_DIAGNOSTIC_FLAG, \
4207 DECLARE_NOTPRODUCT_FLAG, \
4208 IGNORE_RANGE, \
4209 IGNORE_CONSTRAINT)
4210
4211 ARCH_FLAGS(DECLARE_DEVELOPER_FLAG, \
4212 DECLARE_PRODUCT_FLAG, \
4213 DECLARE_DIAGNOSTIC_FLAG, \
4214 DECLARE_EXPERIMENTAL_FLAG, \
4215 DECLARE_NOTPRODUCT_FLAG, \
4216 IGNORE_RANGE, \
4217 IGNORE_CONSTRAINT)
4218
4219 // Extensions
4220
4221 #include "runtime/globals_ext.hpp"
4222
4223 #endif // SHARE_VM_RUNTIME_GLOBALS_HPP
|
605 // The list of product_rw flags are internal/private flags which
606 // may be changed/removed in a future release. It can be set
607 // through the management interface to get/set value
608 // when the name of flag is supplied.
609 //
610 // A flag can be made as "product_rw" only if
611 // - the VM implementation supports dynamic setting of the flag.
612 // This implies that the VM must *always* query the flag variable
613 // and not reuse state related to the flag state at any given time.
614 //
615 // Note that when there is a need to support develop flags to be writeable,
616 // it can be done in the same way as product_rw.
617 //
618 // range is a macro that will expand to min and max arguments for range
619 // checking code if provided - see commandLineFlagRangeList.hpp
620 //
621 // constraint is a macro that will expand to custom function call
622 // for constraint checking if provided - see commandLineFlagConstraintList.hpp
623 //
624
625 #define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, diagnostic, diagnostic_pd, experimental, notproduct, manageable, product_rw, lp64_product, range, constraint) \
626 \
627 lp64_product(bool, UseCompressedOops, false, \
628 "Use 32-bit object references in 64-bit VM. " \
629 "lp64_product means flag is always constant in 32 bit VM") \
630 \
631 lp64_product(bool, UseCompressedClassPointers, false, \
632 "Use 32-bit class pointers in 64-bit VM. " \
633 "lp64_product means flag is always constant in 32 bit VM") \
634 \
635 notproduct(bool, CheckCompressedOops, true, \
636 "Generate checks in encoding/decoding code in debug VM") \
637 \
638 product(uintx, HeapSearchSteps, 3 PPC64_ONLY(+17), \
639 "Heap allocation steps through preferred address regions to find" \
640 " where it can allocate the heap. Number of steps to take per " \
641 "region.") \
642 range(1, max_uintx) \
643 \
644 lp64_product(intx, ObjectAlignmentInBytes, 8, \
645 "Default object alignment in bytes, 8 is minimum") \
2484 \
2485 product(intx, CompilationPolicyChoice, 0, \
2486 "which compilation policy (0-3)") \
2487 range(0, 3) \
2488 \
2489 develop(bool, UseStackBanging, true, \
2490 "use stack banging for stack overflow checks (required for " \
2491 "proper StackOverflow handling; disable only to measure cost " \
2492 "of stackbanging)") \
2493 \
2494 develop(bool, UseStrictFP, true, \
2495 "use strict fp if modifier strictfp is set") \
2496 \
2497 develop(bool, GenerateSynchronizationCode, true, \
2498 "generate locking/unlocking code for synchronized methods and " \
2499 "monitors") \
2500 \
2501 develop(bool, GenerateRangeChecks, true, \
2502 "Generate range checks for array accesses") \
2503 \
2504 diagnostic_pd(bool, ImplicitNullChecks, \
2505 "Generate code for implicit null checks") \
2506 \
2507 product_pd(bool, TrapBasedNullChecks, \
2508 "Generate code for null checks that uses a cmp and trap " \
2509 "instruction raising SIGTRAP. This is only used if an access to" \
2510 "null (+offset) will not raise a SIGSEGV, i.e.," \
2511 "ImplicitNullChecks don't work (PPC64).") \
2512 \
2513 product(bool, PrintSafepointStatistics, false, \
2514 "Print statistics about safepoint synchronization") \
2515 \
2516 product(intx, PrintSafepointStatisticsCount, 300, \
2517 "Total number of safepoint statistics collected " \
2518 "before printing them out") \
2519 range(1, max_intx) \
2520 \
2521 product(intx, PrintSafepointStatisticsTimeout, -1, \
2522 "Print safepoint statistics only when safepoint takes " \
2523 "more than PrintSafepointSatisticsTimeout in millis") \
2524 LP64_ONLY(range(-1, max_intx/MICROUNITS)) \
3118 product(intx, PerMethodTrapLimit, 100, \
3119 "Limit on traps (of one kind) in a method (includes inlines)") \
3120 range(0, max_jint) \
3121 \
3122 experimental(intx, PerMethodSpecTrapLimit, 5000, \
3123 "Limit on speculative traps (of one kind) in a method " \
3124 "(includes inlines)") \
3125 range(0, max_jint) \
3126 \
3127 product(intx, PerBytecodeTrapLimit, 4, \
3128 "Limit on traps (of one kind) at a particular BCI") \
3129 range(0, max_jint) \
3130 \
3131 experimental(intx, SpecTrapLimitExtraEntries, 3, \
3132 "Extra method data trap entries for speculation") \
3133 \
3134 develop(intx, InlineFrequencyRatio, 20, \
3135 "Ratio of call site execution to caller method invocation") \
3136 range(0, max_jint) \
3137 \
3138 diagnostic_pd(intx, InlineFrequencyCount, \
3139 "Count of call site execution necessary to trigger frequent " \
3140 "inlining") \
3141 range(0, max_jint) \
3142 \
3143 develop(intx, InlineThrowCount, 50, \
3144 "Force inlining of interpreted methods that throw this often") \
3145 range(0, max_jint) \
3146 \
3147 develop(intx, InlineThrowMaxSize, 200, \
3148 "Force inlining of throwing methods smaller than this") \
3149 range(0, max_jint) \
3150 \
3151 develop(intx, ProfilerNodeSize, 1024, \
3152 "Size in K to allocate for the Profile Nodes of each thread") \
3153 range(0, 1024) \
3154 \
3155 /* gc parameters */ \
3156 product(size_t, InitialHeapSize, 0, \
3157 "Initial heap size (in bytes); zero means use ergonomics") \
3158 constraint(InitialHeapSizeConstraintFunc,AfterErgo) \
4099 diagnostic(bool, UseUnalignedAccesses, false, \
4100 "Use unaligned memory accesses in Unsafe") \
4101 \
4102 product_pd(bool, PreserveFramePointer, \
4103 "Use the FP register for holding the frame pointer " \
4104 "and not as a general purpose register.") \
4105 \
4106 diagnostic(bool, CheckIntrinsics, true, \
4107 "When a class C is loaded, check that " \
4108 "(1) all intrinsics defined by the VM for class C are present "\
4109 "in the loaded class file and are marked with the " \
4110 "@HotSpotIntrinsicCandidate annotation, that " \
4111 "(2) there is an intrinsic registered for all loaded methods " \
4112 "that are annotated with the @HotSpotIntrinsicCandidate " \
4113 "annotation, and that " \
4114 "(3) no orphan methods exist for class C (i.e., methods for " \
4115 "which the VM declares an intrinsic but that are not declared "\
4116 "in the loaded class C. " \
4117 "Check (3) is available only in debug builds.") \
4118 \
4119 diagnostic_pd(intx, InitArrayShortSize, \
4120 "Threshold small size (in bytes) for clearing arrays. " \
4121 "Anything this size or smaller may get converted to discrete " \
4122 "scalar stores.") \
4123 range(0, max_intx) \
4124 constraint(InitArrayShortSizeConstraintFunc, AfterErgo) \
4125 \
4126 diagnostic(bool, CompilerDirectivesIgnoreCompileCommands, false, \
4127 "Disable backwards compatibility for compile commands.") \
4128 \
4129 diagnostic(bool, CompilerDirectivesPrint, false, \
4130 "Print compiler directives on installation.") \
4131 diagnostic(int, CompilerDirectivesLimit, 50, \
4132 "Limit on number of compiler directives.")
4133
4134
4135 /*
4136 * Macros for factoring of globals
4137 */
4138
4139 // Interface macros
4140 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
4141 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name;
4142 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
4143 #define DECLARE_PD_DIAGNOSTIC_FLAG(type, name, doc) extern "C" type name;
4144 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
4145 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
4146 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
4147 #ifdef PRODUCT
4148 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value;
4149 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name;
4150 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value;
4151 #else
4152 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name;
4153 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name;
4154 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name;
4155 #endif // PRODUCT
4156 // Special LP64 flags, product only needed for now.
4157 #ifdef _LP64
4158 #define DECLARE_LP64_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
4159 #else
4160 #define DECLARE_LP64_PRODUCT_FLAG(type, name, value, doc) const type name = value;
4161 #endif // _LP64
4162
4163 // Implementation macros
4164 #define MATERIALIZE_PRODUCT_FLAG(type, name, value, doc) type name = value;
4165 #define MATERIALIZE_PD_PRODUCT_FLAG(type, name, doc) type name = pd_##name;
4166 #define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc) type name = value;
4167 #define MATERIALIZE_PD_DIAGNOSTIC_FLAG(type, name, doc) type name = pd_##name;
4168 #define MATERIALIZE_EXPERIMENTAL_FLAG(type, name, value, doc) type name = value;
4169 #define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc) type name = value;
4170 #define MATERIALIZE_PRODUCT_RW_FLAG(type, name, value, doc) type name = value;
4171 #ifdef PRODUCT
4172 #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc)
4173 #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc)
4174 #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc)
4175 #else
4176 #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type name = value;
4177 #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) type name = pd_##name;
4178 #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc) type name = value;
4179 #endif // PRODUCT
4180 #ifdef _LP64
4181 #define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) type name = value;
4182 #else
4183 #define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) /* flag is constant */
4184 #endif // _LP64
4185
4186 // Only materialize src code for range checking when required, ignore otherwise
4187 #define IGNORE_RANGE(a, b)
4188 // Only materialize src code for contraint checking when required, ignore otherwise
4189 #define IGNORE_CONSTRAINT(func,type)
4190
4191 RUNTIME_FLAGS(DECLARE_DEVELOPER_FLAG, \
4192 DECLARE_PD_DEVELOPER_FLAG, \
4193 DECLARE_PRODUCT_FLAG, \
4194 DECLARE_PD_PRODUCT_FLAG, \
4195 DECLARE_DIAGNOSTIC_FLAG, \
4196 DECLARE_PD_DIAGNOSTIC_FLAG, \
4197 DECLARE_EXPERIMENTAL_FLAG, \
4198 DECLARE_NOTPRODUCT_FLAG, \
4199 DECLARE_MANAGEABLE_FLAG, \
4200 DECLARE_PRODUCT_RW_FLAG, \
4201 DECLARE_LP64_PRODUCT_FLAG, \
4202 IGNORE_RANGE, \
4203 IGNORE_CONSTRAINT)
4204
4205 RUNTIME_OS_FLAGS(DECLARE_DEVELOPER_FLAG, \
4206 DECLARE_PD_DEVELOPER_FLAG, \
4207 DECLARE_PRODUCT_FLAG, \
4208 DECLARE_PD_PRODUCT_FLAG, \
4209 DECLARE_DIAGNOSTIC_FLAG, \
4210 DECLARE_PD_DIAGNOSTIC_FLAG, \
4211 DECLARE_NOTPRODUCT_FLAG, \
4212 IGNORE_RANGE, \
4213 IGNORE_CONSTRAINT)
4214
4215 ARCH_FLAGS(DECLARE_DEVELOPER_FLAG, \
4216 DECLARE_PRODUCT_FLAG, \
4217 DECLARE_DIAGNOSTIC_FLAG, \
4218 DECLARE_EXPERIMENTAL_FLAG, \
4219 DECLARE_NOTPRODUCT_FLAG, \
4220 IGNORE_RANGE, \
4221 IGNORE_CONSTRAINT)
4222
4223 // Extensions
4224
4225 #include "runtime/globals_ext.hpp"
4226
4227 #endif // SHARE_VM_RUNTIME_GLOBALS_HPP
|