[sanitizer] Use atomic_fetch_add instead of load/store
authorVitaly Buka <vitalybuka@google.com>
Wed, 24 May 2023 23:19:30 +0000 (16:19 -0700)
committerVitaly Buka <vitalybuka@google.com>
Wed, 24 May 2023 23:22:36 +0000 (16:22 -0700)
compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h

index 5b671fb..ae4dac9 100644 (file)
@@ -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) {