4136 "Extra classlist for building the CDS archive file") \ 4137 \ 4138 experimental(size_t, ArrayAllocatorMallocLimit, \ 4139 SOLARIS_ONLY(64*K) NOT_SOLARIS((size_t)-1), \ 4140 "Allocation less than this value will be allocated " \ 4141 "using malloc. Larger allocations will use mmap.") \ 4142 \ 4143 experimental(bool, AlwaysAtomicAccesses, false, \ 4144 "Accesses to all variables should always be atomic") \ 4145 \ 4146 /* Valhalla prototyping */ \ 4147 product(bool, ValhallaModel3, true, \ 4148 "Enable the Valhalla \"Model 3\" class specializer") \ 4149 \ 4150 product(bool, ValhallaMVT1_0, true, \ 4151 "Enable DeriveValueType annotated classes to be rewritten") \ 4152 \ 4153 product(bool, EnableExtraSuper, true, \ 4154 "allow trait interfaces to be injected into array types") \ 4155 \ 4156 \ 4157 product(bool, EnableTracing, false, \ 4158 "Enable event-based tracing") \ 4159 \ 4160 product(bool, UseLockedTracing, false, \ 4161 "Use locked-tracing when doing event-based tracing") \ 4162 \ 4163 diagnostic(bool, UseUnalignedAccesses, false, \ 4164 "Use unaligned memory accesses in Unsafe") \ 4165 \ 4166 product_pd(bool, PreserveFramePointer, \ 4167 "Use the FP register for holding the frame pointer " \ 4168 "and not as a general purpose register.") \ 4169 \ 4170 diagnostic(bool, CheckIntrinsics, true, \ 4171 "When a class C is loaded, check that " \ 4172 "(1) all intrinsics defined by the VM for class C are present "\ 4173 "in the loaded class file and are marked with the " \ 4174 "@HotSpotIntrinsicCandidate annotation, that " \ 4175 "(2) there is an intrinsic registered for all loaded methods " \ 4176 "that are annotated with the @HotSpotIntrinsicCandidate " \ 4177 "annotation, and that " \ 4178 "(3) no orphan methods exist for class C (i.e., methods for " \ 4179 "which the VM declares an intrinsic but that are not declared "\ 4180 "in the loaded class C. " \ 4181 "Check (3) is available only in debug builds.") \ 4182 \ 4183 diagnostic(bool, CompilerDirectivesIgnoreCompileCommands, false, \ 4184 "Disable backwards compatibility for compile commands.") \ 4185 \ 4186 diagnostic(bool, CompilerDirectivesPrint, false, \ 4187 "Print compiler directives on installation.") \ 4188 diagnostic(int, CompilerDirectivesLimit, 50, \ 4189 "Limit on number of compiler directives.") \ 4190 \ 4191 experimental(bool, ValueTypePassFieldsAsArgs, true, \ 4192 "Pass each field as an argument at calls") \ 4193 4194 /* 4195 * Macros for factoring of globals 4196 */ 4197 4198 // Interface macros 4199 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 4200 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 4201 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 4202 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 4203 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 4204 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 4205 #ifdef PRODUCT 4206 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value; 4207 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name; 4208 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value; 4209 #else 4210 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; 4211 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name; 4212 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name; | 4136 "Extra classlist for building the CDS archive file") \ 4137 \ 4138 experimental(size_t, ArrayAllocatorMallocLimit, \ 4139 SOLARIS_ONLY(64*K) NOT_SOLARIS((size_t)-1), \ 4140 "Allocation less than this value will be allocated " \ 4141 "using malloc. Larger allocations will use mmap.") \ 4142 \ 4143 experimental(bool, AlwaysAtomicAccesses, false, \ 4144 "Accesses to all variables should always be atomic") \ 4145 \ 4146 /* Valhalla prototyping */ \ 4147 product(bool, ValhallaModel3, true, \ 4148 "Enable the Valhalla \"Model 3\" class specializer") \ 4149 \ 4150 product(bool, ValhallaMVT1_0, true, \ 4151 "Enable DeriveValueType annotated classes to be rewritten") \ 4152 \ 4153 product(bool, EnableExtraSuper, true, \ 4154 "allow trait interfaces to be injected into array types") \ 4155 \ 4156 develop_pd(bool, ValueTypePassFieldsAsArgs, \ 4157 "Pass each field as an argument at calls") \ 4158 \ 4159 \ 4160 product(bool, EnableTracing, false, \ 4161 "Enable event-based tracing") \ 4162 \ 4163 product(bool, UseLockedTracing, false, \ 4164 "Use locked-tracing when doing event-based tracing") \ 4165 \ 4166 diagnostic(bool, UseUnalignedAccesses, false, \ 4167 "Use unaligned memory accesses in Unsafe") \ 4168 \ 4169 product_pd(bool, PreserveFramePointer, \ 4170 "Use the FP register for holding the frame pointer " \ 4171 "and not as a general purpose register.") \ 4172 \ 4173 diagnostic(bool, CheckIntrinsics, true, \ 4174 "When a class C is loaded, check that " \ 4175 "(1) all intrinsics defined by the VM for class C are present "\ 4176 "in the loaded class file and are marked with the " \ 4177 "@HotSpotIntrinsicCandidate annotation, that " \ 4178 "(2) there is an intrinsic registered for all loaded methods " \ 4179 "that are annotated with the @HotSpotIntrinsicCandidate " \ 4180 "annotation, and that " \ 4181 "(3) no orphan methods exist for class C (i.e., methods for " \ 4182 "which the VM declares an intrinsic but that are not declared "\ 4183 "in the loaded class C. " \ 4184 "Check (3) is available only in debug builds.") \ 4185 \ 4186 diagnostic(bool, CompilerDirectivesIgnoreCompileCommands, false, \ 4187 "Disable backwards compatibility for compile commands.") \ 4188 \ 4189 diagnostic(bool, CompilerDirectivesPrint, false, \ 4190 "Print compiler directives on installation.") \ 4191 diagnostic(int, CompilerDirectivesLimit, 50, \ 4192 "Limit on number of compiler directives.") \ 4193 4194 4195 /* 4196 * Macros for factoring of globals 4197 */ 4198 4199 // Interface macros 4200 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 4201 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 4202 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 4203 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 4204 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 4205 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 4206 #ifdef PRODUCT 4207 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value; 4208 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name; 4209 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value; 4210 #else 4211 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; 4212 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name; 4213 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name; |