summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp6
-rw-r--r--llvm/lib/Target/X86/X86EvexToVex.cpp6
-rw-r--r--llvm/lib/Target/X86/X86InstrInfo.cpp7
3 files changed, 10 insertions, 9 deletions
diff --git a/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp b/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
index 439ba9e2c78..2f3390d2737 100644
--- a/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
+++ b/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
@@ -415,11 +415,11 @@ static const NEONLdStTableEntry NEONLdStTable[] = {
static const NEONLdStTableEntry *LookupNEONLdSt(unsigned Opcode) {
#ifndef NDEBUG
// Make sure the table is sorted.
- static bool TableChecked = false;
- if (!TableChecked) {
+ static std::atomic<bool> TableChecked(false);
+ if (!TableChecked.load(std::memory_order_relaxed)) {
assert(std::is_sorted(std::begin(NEONLdStTable), std::end(NEONLdStTable)) &&
"NEONLdStTable is not sorted!");
- TableChecked = true;
+ TablesChecked.store(true, std::memory_order_relaxed);
}
#endif
diff --git a/llvm/lib/Target/X86/X86EvexToVex.cpp b/llvm/lib/Target/X86/X86EvexToVex.cpp
index fb7217b2851..8352ebc037e 100644
--- a/llvm/lib/Target/X86/X86EvexToVex.cpp
+++ b/llvm/lib/Target/X86/X86EvexToVex.cpp
@@ -239,15 +239,15 @@ bool EvexToVexInstPass::CompressEvexToVexImpl(MachineInstr &MI) const {
#ifndef NDEBUG
// Make sure the tables are sorted.
- static bool TableChecked = false;
- if (!TableChecked) {
+ static std::atomic<bool> TableChecked(false);
+ if (!TableChecked.load(std::memory_order_relaxed)) {
assert(std::is_sorted(std::begin(X86EvexToVex128CompressTable),
std::end(X86EvexToVex128CompressTable)) &&
"X86EvexToVex128CompressTable is not sorted!");
assert(std::is_sorted(std::begin(X86EvexToVex256CompressTable),
std::end(X86EvexToVex256CompressTable)) &&
"X86EvexToVex256CompressTable is not sorted!");
- TableChecked = true;
+ TablesChecked.store(true, std::memory_order_relaxed);
}
#endif
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp
index 7096e8284ed..7492de27e7b 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.cpp
+++ b/llvm/lib/Target/X86/X86InstrInfo.cpp
@@ -5413,7 +5413,8 @@ X86InstrInfo::X86InstrInfo(X86Subtarget &STI)
#ifndef NDEBUG
// Make sure the tables are sorted.
- static bool LLVM_ATTRIBUTE_UNUSED FoldTablesChecked = [] {
+ static std::atomic<bool> FoldTablesChecked(false);
+ if (!FoldTablesChecked.load(std::memory_order_relaxed)) {
assert(std::is_sorted(std::begin(MemoryFoldTable2Addr),
std::end(MemoryFoldTable2Addr)) &&
std::adjacent_find(std::begin(MemoryFoldTable2Addr),
@@ -5450,8 +5451,8 @@ X86InstrInfo::X86InstrInfo(X86Subtarget &STI)
std::end(MemoryFoldTable4)) ==
std::end(MemoryFoldTable4) &&
"MemoryFoldTable4 is not sorted and unique!");
- return true;
- }();
+ FoldTablesChecked.store(true, std::memory_order_relaxed);
+ }
#endif
}
OpenPOWER on IntegriCloud