LLVM 22.0.0git
llvm::OpenMPIRBuilder::AtomicInfo Class Reference

#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"

Inheritance diagram for llvm::OpenMPIRBuilder::AtomicInfo:
[legend]

Public Member Functions

 AtomicInfo (IRBuilder<> *Builder, llvm::Type *Ty, uint64_t AtomicSizeInBits, uint64_t ValueSizeInBits, llvm::Align AtomicAlign, llvm::Align ValueAlign, bool UseLibcall, IRBuilderBase::InsertPoint AllocaIP, llvm::Value *AtomicVar)
llvm::ValuegetAtomicPointer () const override
void decorateWithTBAA (llvm::Instruction *I) override
llvm::AllocaInstCreateAlloca (llvm::Type *Ty, const llvm::Twine &Name) const override
Public Member Functions inherited from llvm::AtomicInfo
 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
TypegetAtomicTy () const
bool hasPadding () const
LLVMContextgetLLVMContext () const
LLVM_ABI bool shouldCastToInt (Type *ValTy, bool CmpXchg)
LLVM_ABI ValueEmitAtomicLoadOp (AtomicOrdering AO, bool IsVolatile, bool CmpXchg=false)
LLVM_ABI CallInstEmitAtomicLibcall (StringRef fnName, Type *ResultType, ArrayRef< Value * > Args)
ValuegetAtomicSizeValue () const
LLVM_ABI std::pair< Value *, Value * > EmitAtomicCompareExchangeLibcall (Value *ExpectedVal, Value *DesiredVal, AtomicOrdering Success, AtomicOrdering Failure)
ValuecastToAtomicIntPointer (Value *addr) const
ValuegetAtomicAddressAsAtomicIntPointer () 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)

Additional Inherited Members

Protected Attributes inherited from llvm::AtomicInfo
IRBuilderBaseBuilder
TypeTy
uint64_t AtomicSizeInBits
uint64_t ValueSizeInBits
Align AtomicAlign
Align ValueAlign
bool UseLibcall
IRBuilderBase::InsertPoint AllocaIP

Detailed Description

Definition at line 513 of file OMPIRBuilder.h.

Constructor & Destructor Documentation

◆ AtomicInfo()

llvm::OpenMPIRBuilder::AtomicInfo::AtomicInfo ( IRBuilder<> * Builder,
llvm::Type * Ty,
uint64_t AtomicSizeInBits,
uint64_t ValueSizeInBits,
llvm::Align AtomicAlign,
llvm::Align ValueAlign,
bool UseLibcall,
IRBuilderBase::InsertPoint AllocaIP,
llvm::Value * AtomicVar )
inline

Member Function Documentation

◆ CreateAlloca()

llvm::AllocaInst * llvm::OpenMPIRBuilder::AtomicInfo::CreateAlloca ( llvm::Type * Ty,
const llvm::Twine & Name ) const
inlineoverridevirtual

◆ decorateWithTBAA()

void llvm::OpenMPIRBuilder::AtomicInfo::decorateWithTBAA ( llvm::Instruction * I)
inlineoverridevirtual

Implements llvm::AtomicInfo.

Definition at line 526 of file OMPIRBuilder.h.

References I.

◆ getAtomicPointer()

llvm::Value * llvm::OpenMPIRBuilder::AtomicInfo::getAtomicPointer ( ) const
inlineoverridevirtual

Implements llvm::AtomicInfo.

Definition at line 525 of file OMPIRBuilder.h.


The documentation for this class was generated from the following file: