#include "llvm/Transforms/Scalar/LowerAtomicPass.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/LowerAtomic.h"
usingnamespacellvm;
#define DEBUG_TYPE …
static bool LowerFenceInst(FenceInst *FI) { … }
static bool LowerLoadInst(LoadInst *LI) { … }
static bool LowerStoreInst(StoreInst *SI) { … }
static bool runOnBasicBlock(BasicBlock &BB) { … }
static bool lowerAtomics(Function &F) { … }
PreservedAnalyses LowerAtomicPass::run(Function &F, FunctionAnalysisManager &) { … }
namespace {
class LowerAtomicLegacyPass : public FunctionPass { … };
}
char LowerAtomicLegacyPass::ID = …;
INITIALIZE_PASS(…)
Pass *llvm::createLowerAtomicPass() { … }