LLVM: llvm::AtomicInfo Class Reference (original) (raw)
#include "[llvm/Frontend/Atomic/Atomic.h](Frontend%5F2Atomic%5F2Atomic%5F8h%5Fsource.html)"
| Public Member Functions |
|
|
AtomicInfo (IRBuilderBase *Builder, Type *Ty, uint64_t AtomicSizeInBits, uint64_t ValueSizeInBits, Align AtomicAlign, Align ValueAlign, bool UseLibcall, IRBuilderBase::InsertPoint AllocaIP) |
| virtual |
~AtomicInfo ()=default |
| Align |
getAtomicAlignment () const |
| uint64_t |
getAtomicSizeInBits () const |
| uint64_t |
getValueSizeInBits () const |
| bool |
shouldUseLibcall () const |
| Type * |
getAtomicTy () const |
| virtual Value * |
getAtomicPointer () const =0 |
| virtual void |
decorateWithTBAA (Instruction *I)=0 |
| virtual AllocaInst * |
CreateAlloca (Type *Ty, const Twine &Name) const =0 |
| bool |
hasPadding () const |
| LLVMContext & |
getLLVMContext () const |
| LLVM_ABI bool |
shouldCastToInt (Type *ValTy, bool CmpXchg) |
| LLVM_ABI Value * |
EmitAtomicLoadOp (AtomicOrdering AO, bool IsVolatile, bool CmpXchg=false) |
| LLVM_ABI CallInst * |
EmitAtomicLibcall (StringRef fnName, Type *ResultType, ArrayRef< Value * > Args) |
| Value * |
getAtomicSizeValue () const |
| LLVM_ABI std::pair< Value *, Value * > |
EmitAtomicCompareExchangeLibcall (Value *ExpectedVal, Value *DesiredVal, AtomicOrdering Success, AtomicOrdering Failure) |
| Value * |
castToAtomicIntPointer (Value *addr) const |
| Value * |
getAtomicAddressAsAtomicIntPointer () const |
| LLVM_ABI std::pair< Value *, Value * > |
EmitAtomicCompareExchangeOp (Value *ExpectedVal, Value *DesiredVal, AtomicOrdering Success, AtomicOrdering Failure, bool IsVolatile=false, bool IsWeak=false) |
| LLVM_ABI std::pair< Value *, Value * > |
EmitAtomicCompareExchange (Value *ExpectedVal, Value *DesiredVal, AtomicOrdering Success, AtomicOrdering Failure, bool IsVolatile, bool IsWeak) |
| LLVM_ABI std::pair< LoadInst *, AllocaInst * > |
EmitAtomicLoadLibcall (AtomicOrdering AO) |
| LLVM_ABI void |
EmitAtomicStoreLibcall (AtomicOrdering AO, Value *Source) |
Definition at line 17 of file Atomic.h.
◆ ~AtomicInfo()
| virtual llvm::AtomicInfo::~AtomicInfo ( ) |
virtualdefault |
◆ castToAtomicIntPointer()
| Value * llvm::AtomicInfo::castToAtomicIntPointer ( Value * addr) const |
inline |
◆ CreateAlloca()
◆ decorateWithTBAA()
| virtual void llvm::AtomicInfo::decorateWithTBAA ( Instruction * I) |
pure virtual |
◆ EmitAtomicCompareExchange()
◆ EmitAtomicCompareExchangeLibcall()
◆ EmitAtomicCompareExchangeOp()
◆ EmitAtomicLibcall()
◆ EmitAtomicLoadLibcall()
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.
◆ EmitAtomicLoadOp()
◆ EmitAtomicStoreLibcall()
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().
◆ getAtomicAddressAsAtomicIntPointer()
| Value * llvm::AtomicInfo::getAtomicAddressAsAtomicIntPointer ( ) const |
inline |
◆ getAtomicAlignment()
| Align llvm::AtomicInfo::getAtomicAlignment ( ) const |
inline |
◆ getAtomicPointer()
| virtual Value * llvm::AtomicInfo::getAtomicPointer ( ) const |
pure virtual |
◆ getAtomicSizeInBits()
| uint64_t llvm::AtomicInfo::getAtomicSizeInBits ( ) const |
inline |
◆ getAtomicSizeValue()
| Value * llvm::AtomicInfo::getAtomicSizeValue ( ) const |
inline |
◆ getAtomicTy()
| Type * llvm::AtomicInfo::getAtomicTy ( ) const |
inline |
◆ getLLVMContext()
| LLVMContext & llvm::AtomicInfo::getLLVMContext ( ) const |
inline |
◆ getValueSizeInBits()
| uint64_t llvm::AtomicInfo::getValueSizeInBits ( ) const |
inline |
◆ hasPadding()
| bool llvm::AtomicInfo::hasPadding ( ) const |
inline |
◆ shouldCastToInt()
| bool AtomicInfo::shouldCastToInt |
( |
Type * |
ValTy, |
| bool |
CmpXchg ) |
|
|
◆ shouldUseLibcall()
| bool llvm::AtomicInfo::shouldUseLibcall ( ) const |
inline |
◆ AllocaIP
◆ AtomicAlign
| Align llvm::AtomicInfo::AtomicAlign |
protected |
◆ AtomicSizeInBits
| uint64_t llvm::AtomicInfo::AtomicSizeInBits |
protected |
◆ Builder
◆ Ty
| Type* llvm::AtomicInfo::Ty |
protected |
◆ UseLibcall
| bool llvm::AtomicInfo::UseLibcall |
protected |
◆ ValueAlign
| Align llvm::AtomicInfo::ValueAlign |
protected |
◆ ValueSizeInBits
| uint64_t llvm::AtomicInfo::ValueSizeInBits |
protected |
The documentation for this class was generated from the following files: