LLVM
15.0.0git
|
#include "llvm/Transforms/Utils/GlobalStatus.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Use.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/AtomicOrdering.h"
#include "llvm/Support/Casting.h"
#include <algorithm>
#include <cassert>
Go to the source code of this file.
Functions | |
static AtomicOrdering | strongerOrdering (AtomicOrdering X, AtomicOrdering Y) |
Return the stronger of the two ordering. More... | |
static bool | analyzeGlobalAux (const Value *V, GlobalStatus &GS, SmallPtrSetImpl< const Value * > &VisitedUsers) |
|
static |
Definition at line 64 of file GlobalStatus.cpp.
References assert(), F, llvm::X86AS::GS, I, llvm::GlobalStatus::InitializerStored, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::isSafeToDestroyConstant(), SI, llvm::GlobalStatus::Stored, llvm::GlobalStatus::StoredOnce, strongerOrdering(), and llvm::Value::uses().
Referenced by llvm::GlobalStatus::analyzeGlobal().
|
static |
Return the stronger of the two ordering.
If the two orderings are acquire and release, then return AcquireRelease.
Definition at line 33 of file GlobalStatus.cpp.
References llvm::Acquire, llvm::AcquireRelease, llvm::max(), llvm::Release, X, and Y.
Referenced by analyzeGlobalAux().