4111 product(size_t, BigValueTypeThreshold, 4 * BytesPerLong, \ 4112 "Max value type size for buffering") \ 4113 \ 4114 product(intx, ValueTypesBufferMaxMemory, 128, \ 4115 "Max memory used for value types buffers (in pages)") \ 4116 \ 4117 product(bool, ValueTypesThreadLocalRecycling, true, \ 4118 "Enable Thread local recycling of buffered values") \ 4119 \ 4120 product(bool, ReportVTBufferRecyclingTimes, false, \ 4121 "Print duration of each VBuffer recycling") \ 4122 \ 4123 product(int, MinimumVTBufferChunkPerFrame, 2, \ 4124 "Minimum number of VT buffer chunk allowed per frame") \ 4125 \ 4126 product(bool, ZapVTBufferChunks, trueInDebug, \ 4127 "Zap VTBufferChunk memory when recycled") \ 4128 \ 4129 develop(bool, StressValueTypeReturnedAsFields, false, \ 4130 "stress return of fields instead of a value type reference") \ 4131 4132 4133 4134 4135 /* 4136 * Macros for factoring of globals 4137 */ 4138 4139 // Interface macros 4140 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 4141 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 4142 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 4143 #define DECLARE_PD_DIAGNOSTIC_FLAG(type, name, doc) extern "C" type name; 4144 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 4145 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 4146 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 4147 #ifdef PRODUCT 4148 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value; 4149 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name; 4150 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value; | 4111 product(size_t, BigValueTypeThreshold, 4 * BytesPerLong, \ 4112 "Max value type size for buffering") \ 4113 \ 4114 product(intx, ValueTypesBufferMaxMemory, 128, \ 4115 "Max memory used for value types buffers (in pages)") \ 4116 \ 4117 product(bool, ValueTypesThreadLocalRecycling, true, \ 4118 "Enable Thread local recycling of buffered values") \ 4119 \ 4120 product(bool, ReportVTBufferRecyclingTimes, false, \ 4121 "Print duration of each VBuffer recycling") \ 4122 \ 4123 product(int, MinimumVTBufferChunkPerFrame, 2, \ 4124 "Minimum number of VT buffer chunk allowed per frame") \ 4125 \ 4126 product(bool, ZapVTBufferChunks, trueInDebug, \ 4127 "Zap VTBufferChunk memory when recycled") \ 4128 \ 4129 develop(bool, StressValueTypeReturnedAsFields, false, \ 4130 "stress return of fields instead of a value type reference") \ 4131 \ 4132 product(bool, ReturnValuesInThreadLocalBuffer, false, \ 4133 "Interpreter returns values in TLVB when possible") \ 4134 4135 4136 4137 4138 /* 4139 * Macros for factoring of globals 4140 */ 4141 4142 // Interface macros 4143 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 4144 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 4145 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 4146 #define DECLARE_PD_DIAGNOSTIC_FLAG(type, name, doc) extern "C" type name; 4147 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 4148 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 4149 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 4150 #ifdef PRODUCT 4151 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value; 4152 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name; 4153 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value; |