[BOLT][NFC] Fix data race in ShrinkWrapping stats

Fix data race reported by ThreadSanitizer in clang.test:
```
ThreadSanitizer: data race /data/llvm-project/bolt/lib/Passes/ShrinkWrapping.cpp:1359:28
in llvm::bolt::ShrinkWrapping::moveSaveRestores()
```

The issue is with incrementing global counters from multiple threads.

Reviewed By: yota9

Differential Revision: https://reviews.llvm.org/D120218
This commit is contained in:
Amir Ayupov 2022-02-20 14:44:09 -08:00
parent aacc110bdc
commit 36ada32727
2 changed files with 4 additions and 4 deletions

View File

@ -308,8 +308,8 @@ class ShrinkWrapping {
std::vector<MCInst *> BestSavePos;
/// Pass stats
static uint64_t SpillsMovedRegularMode;
static uint64_t SpillsMovedPushPopMode;
static std::atomic_uint64_t SpillsMovedRegularMode;
static std::atomic_uint64_t SpillsMovedPushPopMode;
Optional<unsigned> AnnotationIndex;

View File

@ -710,8 +710,8 @@ void StackLayoutModifier::initialize() {
IsInitialized = true;
}
uint64_t ShrinkWrapping::SpillsMovedRegularMode = 0;
uint64_t ShrinkWrapping::SpillsMovedPushPopMode = 0;
std::atomic_uint64_t ShrinkWrapping::SpillsMovedRegularMode{0};
std::atomic_uint64_t ShrinkWrapping::SpillsMovedPushPopMode{0};
using BBIterTy = BinaryBasicBlock::iterator;