4161 \
4162 diagnostic(bool, CheckIntrinsics, true, \
4163 "When a class C is loaded, check that " \
4164 "(1) all intrinsics defined by the VM for class C are present "\
4165 "in the loaded class file and are marked with the " \
4166 "@HotSpotIntrinsicCandidate annotation, that " \
4167 "(2) there is an intrinsic registered for all loaded methods " \
4168 "that are annotated with the @HotSpotIntrinsicCandidate " \
4169 "annotation, and that " \
4170 "(3) no orphan methods exist for class C (i.e., methods for " \
4171 "which the VM declares an intrinsic but that are not declared "\
4172 "in the loaded class C. " \
4173 "Check (3) is available only in debug builds.") \
4174 \
4175 diagnostic(bool, CompilerDirectivesIgnoreCompileCommands, false, \
4176 "Disable backwards compatibility for compile commands.") \
4177 \
4178 diagnostic(bool, CompilerDirectivesPrint, false, \
4179 "Print compiler directives on installation.") \
4180 diagnostic(int, CompilerDirectivesLimit, 50, \
4181 "Limit on number of compiler directives.")
4182
4183
4184 /*
4185 * Macros for factoring of globals
4186 */
4187
4188 // Interface macros
4189 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
4190 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name;
4191 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
4192 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
4193 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
4194 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
4195 #ifdef PRODUCT
4196 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value;
4197 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name;
4198 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value;
4199 #else
4200 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name;
4201 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name;
4202 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name;
|
4161 \
4162 diagnostic(bool, CheckIntrinsics, true, \
4163 "When a class C is loaded, check that " \
4164 "(1) all intrinsics defined by the VM for class C are present "\
4165 "in the loaded class file and are marked with the " \
4166 "@HotSpotIntrinsicCandidate annotation, that " \
4167 "(2) there is an intrinsic registered for all loaded methods " \
4168 "that are annotated with the @HotSpotIntrinsicCandidate " \
4169 "annotation, and that " \
4170 "(3) no orphan methods exist for class C (i.e., methods for " \
4171 "which the VM declares an intrinsic but that are not declared "\
4172 "in the loaded class C. " \
4173 "Check (3) is available only in debug builds.") \
4174 \
4175 diagnostic(bool, CompilerDirectivesIgnoreCompileCommands, false, \
4176 "Disable backwards compatibility for compile commands.") \
4177 \
4178 diagnostic(bool, CompilerDirectivesPrint, false, \
4179 "Print compiler directives on installation.") \
4180 diagnostic(int, CompilerDirectivesLimit, 50, \
4181 "Limit on number of compiler directives.") \
4182 \
4183 experimental(bool, ValueTypePassFieldsAsArgs, true, \
4184 "Pass each field as an argument at calls") \
4185
4186 /*
4187 * Macros for factoring of globals
4188 */
4189
4190 // Interface macros
4191 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
4192 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name;
4193 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
4194 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
4195 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
4196 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
4197 #ifdef PRODUCT
4198 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value;
4199 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name;
4200 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value;
4201 #else
4202 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name;
4203 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name;
4204 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name;
|