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_pd(bool, ValueTypeReturnedAsFields, \ 4092 "return fields instead of a value type reference") \ 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; | 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_pd(bool, ValueTypeReturnedAsFields, \ 4092 "return fields instead of a value type reference") \ 4093 \ 4094 product(size_t, BigValueTypeThreshold, 4 * BytesPerLong, \ 4095 "Max value type size for buffering") \ 4096 \ 4097 product(intx, ValueTypesBufferMaxMemory, 128, \ 4098 "Max memory used for value types buffers (in pages)") \ 4099 \ 4100 product(bool, ValueTypesThreadLocalRecycling, true, \ 4101 "Enable Thread local recycling of buffered values") \ 4102 \ 4103 product(bool, ReportVTBufferRecyclingTimes, false, \ 4104 "Print duration of each VBuffer recycling") \ 4105 \ 4106 product(int, MinimumVTBufferChunkPerFrame, 2, \ 4107 "Minimum number of VT buffer chunk allowed per frame") \ 4108 4109 4110 4111 /* 4112 * Macros for factoring of globals 4113 */ 4114 4115 // Interface macros 4116 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 4117 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 4118 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 4119 #define DECLARE_PD_DIAGNOSTIC_FLAG(type, name, doc) extern "C" type name; 4120 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 4121 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 4122 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 4123 #ifdef PRODUCT 4124 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value; 4125 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name; 4126 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value; 4127 #else 4128 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; |