LLVM 20.0.0git
Namespaces | Typedefs | Functions
AtomicExpandUtils.h File Reference
#include "llvm/ADT/STLExtras.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/Support/AtomicOrdering.h"

Go to the source code of this file.


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


using llvm::CreateCmpXchgInstFun = function_ref< void(IRBuilderBase &, Value *, Value *, Value *, Align, AtomicOrdering, SyncScope::ID, Value *&, Value *&)>
 Parameters (see the expansion example below): (the builder, addr, loaded, new_val, ordering, /* OUT ‍/ success, / OUT *‍/ new_loaded)


bool llvm::expandAtomicRMWToCmpXchg (AtomicRMWInst *AI, CreateCmpXchgInstFun CreateCmpXchg)
 Expand an atomic RMW instruction into a loop utilizing cmpxchg.