LLVM 20.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 |
|
virtualdefault |
Definition at line 80 of file Atomic.h.
Referenced by getAtomicAddressAsAtomicIntPointer().
|
pure virtual |
Implemented in llvm::OpenMPIRBuilder::AtomicInfo.
Referenced by EmitAtomicLoadLibcall().
|
pure virtual |
Implemented in llvm::OpenMPIRBuilder::AtomicInfo.
Referenced by EmitAtomicLoadOp().
std::pair< Value *, Value * > AtomicInfo::EmitAtomicCompareExchange | ( | Value * | ExpectedVal, |
Value * | DesiredVal, | ||
AtomicOrdering | Success, | ||
AtomicOrdering | Failure, | ||
bool | IsVolatile, | ||
bool | IsWeak | ||
) |
Definition at line 144 of file Atomic.cpp.
References EmitAtomicCompareExchangeLibcall(), EmitAtomicCompareExchangeOp(), shouldUseLibcall(), and 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 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 Addr, Builder, llvm::IRBuilderBase::CreateAtomicCmpXchg(), llvm::IRBuilderBase::CreateExtractValue(), getAtomicAddressAsAtomicIntPointer(), getAtomicAlignment(), llvm::AtomicCmpXchgInst::setVolatile(), 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 llvm::AttrBuilder::addAttribute(), Builder, llvm::IRBuilderBase::CreateCall(), llvm::AttributeList::FunctionIndex, llvm::AttributeList::get(), llvm::FunctionType::get(), llvm::IRBuilderBase::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::BasicBlock::getModule(), 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 Builder, llvm::IRBuilderBase::CreateAddrSpaceCast(), llvm::IRBuilderBase::CreateAlignedLoad(), CreateAlloca(), llvm::IRBuilderBase::CreateCall(), DL, llvm::FunctionType::get(), getAtomicPointer(), getAtomicSizeInBits(), llvm::IRBuilderBase::GetInsertBlock(), llvm::Type::getInt32Ty(), llvm::Type::getIntNTy(), getLLVMContext(), llvm::BasicBlock::getModule(), getName(), llvm::PointerType::getUnqual(), llvm::Type::getVoidTy(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::AllocaInst::setAlignment(), llvm::toCABI(), and Ty.
Referenced by llvm::OpenMPIRBuilder::createAtomicRead().
Value * AtomicInfo::EmitAtomicLoadOp | ( | AtomicOrdering | AO, |
bool | IsVolatile, | ||
bool | CmpXchg = false |
||
) |
Definition at line 22 of file Atomic.cpp.
References AtomicAlign, AtomicSizeInBits, Builder, llvm::IRBuilderBase::CreateAlignedLoad(), decorateWithTBAA(), llvm::IntegerType::get(), getAtomicPointer(), getLLVMContext(), Ptr, shouldCastToInt(), and Ty.
|
inline |
Definition at line 84 of file Atomic.h.
References castToAtomicIntPointer(), and getAtomicPointer().
Referenced by EmitAtomicCompareExchangeOp().
|
inline |
Definition at line 36 of file Atomic.h.
References AtomicAlign.
Referenced by EmitAtomicCompareExchangeOp().
|
pure virtual |
Implemented in llvm::OpenMPIRBuilder::AtomicInfo.
Referenced by EmitAtomicCompareExchangeLibcall(), EmitAtomicLoadLibcall(), EmitAtomicLoadOp(), and getAtomicAddressAsAtomicIntPointer().
|
inline |
Definition at line 37 of file Atomic.h.
References AtomicSizeInBits.
Referenced by EmitAtomicLoadLibcall().
|
inline |
Definition at line 65 of file Atomic.h.
References AtomicSizeInBits, llvm::IntegerType::get(), and getLLVMContext().
Referenced by EmitAtomicCompareExchangeLibcall().
|
inline |
|
inline |
Definition at line 55 of file Atomic.h.
References Builder, and llvm::IRBuilderBase::getContext().
Referenced by EmitAtomicCompareExchangeLibcall(), EmitAtomicLoadLibcall(), EmitAtomicLoadOp(), and getAtomicSizeValue().
|
inline |
Definition at line 38 of file Atomic.h.
References ValueSizeInBits.
|
inline |
Definition at line 53 of file Atomic.h.
References AtomicSizeInBits, and ValueSizeInBits.
Definition at line 16 of file Atomic.cpp.
References llvm::Type::isFloatingPointTy(), llvm::Type::isIntegerTy(), llvm::Type::isPointerTy(), and llvm::Type::isX86_FP80Ty().
Referenced by EmitAtomicLoadOp().
|
inline |
Definition at line 39 of file Atomic.h.
References UseLibcall.
Referenced by EmitAtomicCompareExchange().
|
protected |
Definition at line 22 of file Atomic.h.
Referenced by EmitAtomicLoadOp(), and getAtomicAlignment().
|
protected |
Definition at line 20 of file Atomic.h.
Referenced by EmitAtomicLoadOp(), getAtomicSizeInBits(), getAtomicSizeValue(), and hasPadding().
|
protected |
Definition at line 18 of file Atomic.h.
Referenced by llvm::OpenMPIRBuilder::AtomicInfo::CreateAlloca(), EmitAtomicCompareExchangeOp(), EmitAtomicLibcall(), EmitAtomicLoadLibcall(), EmitAtomicLoadOp(), and getLLVMContext().
|
protected |
Definition at line 19 of file Atomic.h.
Referenced by llvm::OpenMPIRBuilder::AtomicInfo::CreateAlloca(), EmitAtomicLoadLibcall(), EmitAtomicLoadOp(), and getAtomicTy().
|
protected |
Definition at line 24 of file Atomic.h.
Referenced by shouldUseLibcall().
|
protected |
Definition at line 21 of file Atomic.h.
Referenced by getValueSizeInBits(), and hasPadding().