|
27 | 27 | #endif
|
28 | 28 | #endif
|
29 | 29 |
|
30 |
| -#defineNBUCKETS 1024/* number of buckets for data*/ |
31 |
| -#defineNBUCKETS_DIM 16/* number of buckets for dimensions/strides */ |
32 |
| -#defineNCACHE 7/* number of cache entries per bucket */ |
| 30 | +/* Do not enable the alloc cache if the GIL is disabled, or if ASAN or MSAN |
| 31 | + * instrumentation is enabled. The cache makes ASAN use-after-free or MSAN |
| 32 | + * use-of-uninitialized-memory warnings less useful. */ |
| 33 | +#defineUSE_ALLOC_CACHE 1 |
| 34 | +#ifdefPy_GIL_DISABLED |
| 35 | +# defineUSE_ALLOC_CACHE 0 |
| 36 | +#elif defined(__has_feature) |
| 37 | +# if__has_feature(address_sanitizer)||__has_feature(memory_sanitizer) |
| 38 | +# defineUSE_ALLOC_CACHE 0 |
| 39 | +# endif |
| 40 | +#endif |
| 41 | + |
| 42 | +#ifUSE_ALLOC_CACHE |
| 43 | +# defineNBUCKETS 1024/* number of buckets for data*/ |
| 44 | +# defineNBUCKETS_DIM 16/* number of buckets for dimensions/strides */ |
| 45 | +# defineNCACHE 7/* number of cache entries per bucket */ |
33 | 46 | /* this structure fits neatly into a cacheline */
|
34 | 47 | typedefstruct {
|
35 | 48 | npy_uintpavailable;/* number of cached pointers */
|
36 | 49 | void*ptrs[NCACHE];
|
37 | 50 | }cache_bucket;
|
38 | 51 | staticcache_bucketdatacache[NBUCKETS];
|
39 | 52 | staticcache_bucketdimcache[NBUCKETS_DIM];
|
40 |
| - |
| 53 | +#endif/* USE_ALLOC_CACHE */ |
41 | 54 |
|
42 | 55 | /*
|
43 | 56 | * This function tells whether NumPy attempts to call `madvise` with
|
@@ -99,20 +112,6 @@ indicate_hugepages(void *p, size_t size) {
|
99 | 112 | }
|
100 | 113 |
|
101 | 114 |
|
102 |
| -/* Do not enable the alloc cache if the GIL is disabled, or if ASAN or MSAN |
103 |
| - * instrumentation is enabled. The cache makes ASAN use-after-free or MSAN |
104 |
| - * use-of-uninitialized-memory warnings less useful. */ |
105 |
| -#ifdefPy_GIL_DISABLED |
106 |
| -#defineUSE_ALLOC_CACHE 0 |
107 |
| -#elif defined(__has_feature) |
108 |
| -# if__has_feature(address_sanitizer)||__has_feature(memory_sanitizer) |
109 |
| -# defineUSE_ALLOC_CACHE 0 |
110 |
| -# endif |
111 |
| -#else |
112 |
| -#defineUSE_ALLOC_CACHE 1 |
113 |
| -#endif |
114 |
| - |
115 |
| - |
116 | 115 | /* as the cache is managed in global variables verify the GIL is held */
|
117 | 116 |
|
118 | 117 | /*
|
|