diff options
-rw-r--r-- | llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp | 6 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86EvexToVex.cpp | 6 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.cpp | 7 |
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 } |