LLVM 19.0.0git
Namespaces | Enumerations | Functions
AtomicOrdering.h File Reference

Atomic ordering constants. More...

#include <cstddef>

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Enumerations

enum class  llvm::AtomicOrderingCABI {
  llvm::relaxed = 0 , llvm::consume = 1 , llvm::acquire = 2 , llvm::release = 3 ,
  llvm::acq_rel = 4 , llvm::seq_cst = 5
}
 Atomic ordering for C11 / C++11's memory models. More...
 
enum class  llvm::AtomicOrdering : unsigned {
  llvm::NotAtomic = 0 , llvm::Unordered = 1 , llvm::Monotonic = 2 , llvm::Acquire = 4 ,
  llvm::Release = 5 , llvm::AcquireRelease = 6 , llvm::SequentiallyConsistent = 7 , llvm::LAST = SequentiallyConsistent
}
 Atomic ordering for LLVM's memory model. More...
 

Functions

bool llvm::operator< (AtomicOrderingCABI, AtomicOrderingCABI)=delete
 
bool llvm::operator> (AtomicOrderingCABI, AtomicOrderingCABI)=delete
 
bool llvm::operator<= (AtomicOrderingCABI, AtomicOrderingCABI)=delete
 
bool llvm::operator>= (AtomicOrderingCABI, AtomicOrderingCABI)=delete
 
template<typename Int >
bool llvm::isValidAtomicOrderingCABI (Int I)
 
bool llvm::operator< (AtomicOrdering, AtomicOrdering)=delete
 
bool llvm::operator> (AtomicOrdering, AtomicOrdering)=delete
 
bool llvm::operator<= (AtomicOrdering, AtomicOrdering)=delete
 
bool llvm::operator>= (AtomicOrdering, AtomicOrdering)=delete
 
template<typename Int >
bool llvm::isValidAtomicOrdering (Int I)
 
const charllvm::toIRString (AtomicOrdering ao)
 String used by LLVM IR to represent atomic ordering.
 
bool llvm::isStrongerThan (AtomicOrdering AO, AtomicOrdering Other)
 Returns true if ao is stronger than other as defined by the AtomicOrdering lattice, which is based on C++'s definition.
 
bool llvm::isAtLeastOrStrongerThan (AtomicOrdering AO, AtomicOrdering Other)
 
bool llvm::isStrongerThanUnordered (AtomicOrdering AO)
 
bool llvm::isStrongerThanMonotonic (AtomicOrdering AO)
 
bool llvm::isAcquireOrStronger (AtomicOrdering AO)
 
bool llvm::isReleaseOrStronger (AtomicOrdering AO)
 
AtomicOrdering llvm::getMergedAtomicOrdering (AtomicOrdering AO, AtomicOrdering Other)
 Return a single atomic ordering that is at least as strong as both the AO and Other orderings for an atomic operation.
 
AtomicOrderingCABI llvm::toCABI (AtomicOrdering AO)
 

Detailed Description

Atomic ordering constants.

These values are used by LLVM to represent atomic ordering for C++11's memory model and more, as detailed in docs/Atomics.rst.

Definition in file AtomicOrdering.h.