//===- LowerAtomic.cpp - Lower atomic intrinsics --------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This pass lowers atomic intrinsics to non-atomic form for use in a known // non-preemptible environment. // //===----------------------------------------------------------------------===// #include "llvm/Transforms/Utils/LowerAtomic.h" #include "llvm/IR/Function.h" #include "llvm/IR/IRBuilder.h" usingnamespacellvm; #define DEBUG_TYPE … bool llvm::lowerAtomicCmpXchgInst(AtomicCmpXchgInst *CXI) { … } Value *llvm::buildAtomicRMWValue(AtomicRMWInst::BinOp Op, IRBuilderBase &Builder, Value *Loaded, Value *Val) { … } bool llvm::lowerAtomicRMWInst(AtomicRMWInst *RMWI) { … }