4021 "Dump the names all loaded classes, that could be stored into " \ 4022 "the CDS archive, in the specified file") \ 4023 \ 4024 product(ccstr, SharedClassListFile, NULL, \ 4025 "Override the default CDS class list") \ 4026 \ 4027 diagnostic(ccstr, SharedArchiveFile, NULL, \ 4028 "Override the default location of the CDS archive file") \ 4029 \ 4030 product(ccstr, ExtraSharedClassListFile, NULL, \ 4031 "Extra classlist for building the CDS archive file") \ 4032 \ 4033 experimental(size_t, ArrayAllocatorMallocLimit, \ 4034 SOLARIS_ONLY(64*K) NOT_SOLARIS((size_t)-1), \ 4035 "Allocation less than this value will be allocated " \ 4036 "using malloc. Larger allocations will use mmap.") \ 4037 \ 4038 experimental(bool, AlwaysAtomicAccesses, false, \ 4039 "Accesses to all variables should always be atomic") \ 4040 \ 4041 develop_pd(bool, ValueTypePassFieldsAsArgs, \ 4042 "Pass each field as an argument at calls") \ 4043 \ 4044 \ 4045 product(bool, EnableTracing, false, \ 4046 "Enable event-based tracing") \ 4047 \ 4048 product(bool, UseLockedTracing, false, \ 4049 "Use locked-tracing when doing event-based tracing") \ 4050 \ 4051 diagnostic(bool, UseUnalignedAccesses, false, \ 4052 "Use unaligned memory accesses in Unsafe") \ 4053 \ 4054 product_pd(bool, PreserveFramePointer, \ 4055 "Use the FP register for holding the frame pointer " \ 4056 "and not as a general purpose register.") \ 4057 \ 4058 diagnostic(bool, CheckIntrinsics, true, \ 4059 "When a class C is loaded, check that " \ 4060 "(1) all intrinsics defined by the VM for class C are present "\ 4061 "in the loaded class file and are marked with the " \ 4062 "@HotSpotIntrinsicCandidate annotation, that " \ 4063 "(2) there is an intrinsic registered for all loaded methods " \ 4064 "that are annotated with the @HotSpotIntrinsicCandidate " \ 4071 diagnostic_pd(intx, InitArrayShortSize, \ 4072 "Threshold small size (in bytes) for clearing arrays. " \ 4073 "Anything this size or smaller may get converted to discrete " \ 4074 "scalar stores.") \ 4075 range(0, max_intx) \ 4076 constraint(InitArrayShortSizeConstraintFunc, AfterErgo) \ 4077 \ 4078 diagnostic(bool, CompilerDirectivesIgnoreCompileCommands, false, \ 4079 "Disable backwards compatibility for compile commands.") \ 4080 \ 4081 diagnostic(bool, CompilerDirectivesPrint, false, \ 4082 "Print compiler directives on installation.") \ 4083 diagnostic(int, CompilerDirectivesLimit, 50, \ 4084 "Limit on number of compiler directives.") \ 4085 \ 4086 product(bool, EnableValhalla, false, \ 4087 "Enable experimental Valhalla features") \ 4088 \ 4089 product(bool, EnableMVT, false, \ 4090 "Enable experimental Minimal Value Types") \ 4091 4092 4093 /* 4094 * Macros for factoring of globals 4095 */ 4096 4097 // Interface macros 4098 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 4099 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 4100 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 4101 #define DECLARE_PD_DIAGNOSTIC_FLAG(type, name, doc) extern "C" type name; 4102 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 4103 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 4104 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 4105 #ifdef PRODUCT 4106 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value; 4107 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name; 4108 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value; 4109 #else 4110 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; | 4021 "Dump the names all loaded classes, that could be stored into " \ 4022 "the CDS archive, in the specified file") \ 4023 \ 4024 product(ccstr, SharedClassListFile, NULL, \ 4025 "Override the default CDS class list") \ 4026 \ 4027 diagnostic(ccstr, SharedArchiveFile, NULL, \ 4028 "Override the default location of the CDS archive file") \ 4029 \ 4030 product(ccstr, ExtraSharedClassListFile, NULL, \ 4031 "Extra classlist for building the CDS archive file") \ 4032 \ 4033 experimental(size_t, ArrayAllocatorMallocLimit, \ 4034 SOLARIS_ONLY(64*K) NOT_SOLARIS((size_t)-1), \ 4035 "Allocation less than this value will be allocated " \ 4036 "using malloc. Larger allocations will use mmap.") \ 4037 \ 4038 experimental(bool, AlwaysAtomicAccesses, false, \ 4039 "Accesses to all variables should always be atomic") \ 4040 \ 4041 product(bool, EnableTracing, false, \ 4042 "Enable event-based tracing") \ 4043 \ 4044 product(bool, UseLockedTracing, false, \ 4045 "Use locked-tracing when doing event-based tracing") \ 4046 \ 4047 diagnostic(bool, UseUnalignedAccesses, false, \ 4048 "Use unaligned memory accesses in Unsafe") \ 4049 \ 4050 product_pd(bool, PreserveFramePointer, \ 4051 "Use the FP register for holding the frame pointer " \ 4052 "and not as a general purpose register.") \ 4053 \ 4054 diagnostic(bool, CheckIntrinsics, true, \ 4055 "When a class C is loaded, check that " \ 4056 "(1) all intrinsics defined by the VM for class C are present "\ 4057 "in the loaded class file and are marked with the " \ 4058 "@HotSpotIntrinsicCandidate annotation, that " \ 4059 "(2) there is an intrinsic registered for all loaded methods " \ 4060 "that are annotated with the @HotSpotIntrinsicCandidate " \ 4067 diagnostic_pd(intx, InitArrayShortSize, \ 4068 "Threshold small size (in bytes) for clearing arrays. " \ 4069 "Anything this size or smaller may get converted to discrete " \ 4070 "scalar stores.") \ 4071 range(0, max_intx) \ 4072 constraint(InitArrayShortSizeConstraintFunc, AfterErgo) \ 4073 \ 4074 diagnostic(bool, CompilerDirectivesIgnoreCompileCommands, false, \ 4075 "Disable backwards compatibility for compile commands.") \ 4076 \ 4077 diagnostic(bool, CompilerDirectivesPrint, false, \ 4078 "Print compiler directives on installation.") \ 4079 diagnostic(int, CompilerDirectivesLimit, 50, \ 4080 "Limit on number of compiler directives.") \ 4081 \ 4082 product(bool, EnableValhalla, false, \ 4083 "Enable experimental Valhalla features") \ 4084 \ 4085 product(bool, EnableMVT, false, \ 4086 "Enable experimental Minimal Value Types") \ 4087 \ 4088 develop_pd(bool, ValueTypePassFieldsAsArgs, \ 4089 "Pass each value type field as an argument at calls") \ 4090 \ 4091 develop(bool, FullGCALotWithValueTypes, false, \ 4092 "Force full GCs to stress test handling of value types") \ 4093 4094 4095 /* 4096 * Macros for factoring of globals 4097 */ 4098 4099 // Interface macros 4100 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 4101 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 4102 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 4103 #define DECLARE_PD_DIAGNOSTIC_FLAG(type, name, doc) extern "C" type name; 4104 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 4105 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 4106 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 4107 #ifdef PRODUCT 4108 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value; 4109 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name; 4110 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value; 4111 #else 4112 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; |