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 | 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 develop(bool, StressValueTypeReturnedAsFields, false, \ 4110 "stress return of fields instead of a value type reference") \ 4111 4112 4113 4114 4115 /* 4116 * Macros for factoring of globals 4117 */ 4118 4119 // Interface macros 4120 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 4121 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 4122 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 4123 #define DECLARE_PD_DIAGNOSTIC_FLAG(type, name, doc) extern "C" type name; 4124 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 4125 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 4126 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 4127 #ifdef PRODUCT 4128 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value; 4129 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name; 4130 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value; 4131 #else |