LLVM 22.0.0git
|
#include "llvm/Frontend/Atomic/Atomic.h"
Protected Attributes | |
IRBuilderBase * | Builder |
Type * | Ty |
uint64_t | AtomicSizeInBits |
uint64_t | ValueSizeInBits |
Align | AtomicAlign |
Align | ValueAlign |
bool | UseLibcall |
IRBuilderBase::InsertPoint | AllocaIP |
|
inline |
Definition at line 29 of file Atomic.h.
References AllocaIP, AtomicAlign, AtomicSizeInBits, Builder, Ty, UseLibcall, ValueAlign, and ValueSizeInBits.
|
virtualdefault |
Definition at line 82 of file Atomic.h.
Referenced by getAtomicAddressAsAtomicIntPointer().
|
pure virtual |
References Ty.
Referenced by EmitAtomicLoadLibcall().
|
pure virtual |
References I.
Referenced by EmitAtomicLoadOp().
std::pair< Value *, Value * > AtomicInfo::EmitAtomicCompareExchange | ( | Value * | ExpectedVal, |
Value * | DesiredVal, | ||
AtomicOrdering | Success, | ||
AtomicOrdering | Failure, | ||
bool | IsVolatile, | ||
bool | IsWeak ) |
Definition at line 184 of file Atomic.cpp.
References EmitAtomicCompareExchangeLibcall(), EmitAtomicCompareExchangeOp(), shouldUseLibcall(), and llvm::Success.
std::pair< Value *, Value * > AtomicInfo::EmitAtomicCompareExchangeLibcall | ( | Value * | ExpectedVal, |
Value * | DesiredVal, | ||
AtomicOrdering | Success, | ||
AtomicOrdering | Failure ) |
Definition at line 57 of file Atomic.cpp.
References EmitAtomicLibcall(), llvm::IntegerType::get(), getAtomicPointer(), getAtomicSizeValue(), llvm::Type::getInt1Ty(), llvm::Constant::getIntegerValue(), getLLVMContext(), and llvm::Success.
Referenced by EmitAtomicCompareExchange().
std::pair< Value *, Value * > AtomicInfo::EmitAtomicCompareExchangeOp | ( | Value * | ExpectedVal, |
Value * | DesiredVal, | ||
AtomicOrdering | Success, | ||
AtomicOrdering | Failure, | ||
bool | IsVolatile = false, | ||
bool | IsWeak = false ) |
Definition at line 89 of file Atomic.cpp.
References Builder, getAtomicAddressAsAtomicIntPointer(), getAtomicAlignment(), llvm::Success, and llvm::SyncScope::System.
Referenced by EmitAtomicCompareExchange().
CallInst * AtomicInfo::EmitAtomicLibcall | ( | StringRef | fnName, |
Type * | ResultType, | ||
ArrayRef< Value * > | Args ) |
Definition at line 37 of file Atomic.cpp.
References Builder, Call, llvm::FunctionType::get(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAtomicCompareExchangeLibcall().
std::pair< LoadInst *, AllocaInst * > AtomicInfo::EmitAtomicLoadLibcall | ( | AtomicOrdering | AO | ) |
Definition at line 107 of file Atomic.cpp.
References AllocaIP, Builder, Call, CreateAlloca(), DL, llvm::FunctionType::get(), getAtomicPointer(), getAtomicSizeInBits(), llvm::Type::getInt32Ty(), llvm::Type::getIntNTy(), getLLVMContext(), getName(), llvm::PointerType::getUnqual(), llvm::Type::getVoidTy(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::AllocaInst::setAlignment(), llvm::toCABI(), and Ty.
Value * AtomicInfo::EmitAtomicLoadOp | ( | AtomicOrdering | AO, |
bool | IsVolatile, | ||
bool | CmpXchg = false ) |
Definition at line 22 of file Atomic.cpp.
References AtomicAlign, AtomicSizeInBits, Builder, decorateWithTBAA(), llvm::IntegerType::get(), getAtomicPointer(), getLLVMContext(), Ptr, shouldCastToInt(), and Ty.
void AtomicInfo::EmitAtomicStoreLibcall | ( | AtomicOrdering | AO, |
Value * | Source ) |
Definition at line 148 of file Atomic.cpp.
References AllocaIP, Builder, Call, DL, llvm::FunctionType::get(), getAtomicPointer(), llvm::Type::getInt32Ty(), getLLVMContext(), llvm::PointerType::getUnqual(), llvm::Type::getVoidTy(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::toCABI().
|
inline |
Definition at line 86 of file Atomic.h.
References castToAtomicIntPointer(), and getAtomicPointer().
Referenced by EmitAtomicCompareExchangeOp().
|
inline |
Definition at line 38 of file Atomic.h.
References AtomicAlign.
Referenced by EmitAtomicCompareExchangeOp().
|
pure virtual |
|
inline |
Definition at line 39 of file Atomic.h.
References AtomicSizeInBits.
Referenced by EmitAtomicLoadLibcall().
|
inline |
Definition at line 67 of file Atomic.h.
References AtomicSizeInBits, llvm::IntegerType::get(), and getLLVMContext().
Referenced by EmitAtomicCompareExchangeLibcall().
|
inline |
|
inline |
Definition at line 57 of file Atomic.h.
References Builder.
Referenced by EmitAtomicCompareExchangeLibcall(), EmitAtomicLoadLibcall(), EmitAtomicLoadOp(), EmitAtomicStoreLibcall(), and getAtomicSizeValue().
|
inline |
Definition at line 40 of file Atomic.h.
References ValueSizeInBits.
|
inline |
Definition at line 55 of file Atomic.h.
References AtomicSizeInBits, and ValueSizeInBits.
Definition at line 16 of file Atomic.cpp.
Referenced by EmitAtomicLoadOp().
|
inline |
Definition at line 41 of file Atomic.h.
References UseLibcall.
Referenced by EmitAtomicCompareExchange().
|
protected |
Definition at line 26 of file Atomic.h.
Referenced by AtomicInfo(), EmitAtomicLoadLibcall(), and EmitAtomicStoreLibcall().
|
protected |
Definition at line 23 of file Atomic.h.
Referenced by AtomicInfo(), EmitAtomicLoadOp(), and getAtomicAlignment().
|
protected |
Definition at line 21 of file Atomic.h.
Referenced by AtomicInfo(), EmitAtomicLoadOp(), getAtomicSizeInBits(), getAtomicSizeValue(), and hasPadding().
|
protected |
Definition at line 19 of file Atomic.h.
Referenced by AtomicInfo(), EmitAtomicCompareExchangeOp(), EmitAtomicLibcall(), EmitAtomicLoadLibcall(), EmitAtomicLoadOp(), EmitAtomicStoreLibcall(), and getLLVMContext().
|
protected |
Definition at line 20 of file Atomic.h.
Referenced by AtomicInfo(), CreateAlloca(), EmitAtomicLoadLibcall(), EmitAtomicLoadOp(), and getAtomicTy().
|
protected |
Definition at line 25 of file Atomic.h.
Referenced by AtomicInfo(), and shouldUseLibcall().
|
protected |
Definition at line 24 of file Atomic.h.
Referenced by AtomicInfo().
|
protected |
Definition at line 22 of file Atomic.h.
Referenced by AtomicInfo(), getValueSizeInBits(), and hasPadding().