LLVM  6.0.0svn
Namespaces | Enumerations | Functions
AtomicOrdering.h File Reference

Atomic ordering constants. More...

#include <cstddef>
Include dependency graph for AtomicOrdering.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Enumerations

enum  llvm::AtomicOrderingCABI {
  llvm::AtomicOrderingCABI::relaxed = 0, llvm::AtomicOrderingCABI::consume = 1, llvm::AtomicOrderingCABI::acquire = 2, llvm::AtomicOrderingCABI::release = 3,
  llvm::AtomicOrderingCABI::acq_rel = 4, llvm::AtomicOrderingCABI::seq_cst = 5
}
 Atomic ordering for C11 / C++11's memody models. More...
 
enum  llvm::AtomicOrdering {
  llvm::AtomicOrdering::NotAtomic = 0, llvm::AtomicOrdering::Unordered = 1, llvm::AtomicOrdering::Monotonic = 2, llvm::AtomicOrdering::Acquire = 4,
  llvm::AtomicOrdering::Release = 5, llvm::AtomicOrdering::AcquireRelease = 6, llvm::AtomicOrdering::SequentiallyConsistent = 7
}
 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 >
static 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 >
static bool llvm::isValidAtomicOrdering (Int I)
 
static const charllvm::toIRString (AtomicOrdering ao)
 String used by LLVM IR to represent atomic ordering. More...
 
static 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. More...
 
static bool llvm::isAtLeastOrStrongerThan (AtomicOrdering ao, AtomicOrdering other)
 
static bool llvm::isStrongerThanUnordered (AtomicOrdering ao)
 
static bool llvm::isStrongerThanMonotonic (AtomicOrdering ao)
 
static bool llvm::isAcquireOrStronger (AtomicOrdering ao)
 
static bool llvm::isReleaseOrStronger (AtomicOrdering ao)
 
static 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.