From f5808fc19711bddcb25918ed3224cdcaad4f9865 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Wed, 24 May 2023 16:19:30 -0700 Subject: [PATCH] [sanitizer] Use atomic_fetch_add instead of load/store --- compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h b/compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h index 5b671fb..ae4dac9 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h @@ -25,17 +25,13 @@ typedef uptr AllocatorStatCounters[AllocatorStatCount]; // Per-thread stats, live in per-thread cache. class AllocatorStats { public: - void Init() { - internal_memset(this, 0, sizeof(*this)); - } + void Init() { internal_memset(this, 0, sizeof(*this)); } void Add(AllocatorStat i, uptr v) { - v += atomic_load(&stats_[i], memory_order_relaxed); - atomic_store(&stats_[i], v, memory_order_relaxed); + atomic_fetch_add(&stats_[i], v, memory_order_relaxed); } void Sub(AllocatorStat i, uptr v) { - v = atomic_load(&stats_[i], memory_order_relaxed) - v; - atomic_store(&stats_[i], v, memory_order_relaxed); + atomic_fetch_sub(&stats_[i], v, memory_order_relaxed); } void Set(AllocatorStat i, uptr v) { -- 2.7.4