LLVM 20.0.0git
Public Member Functions | List of all members
llvm::OpenMPIRBuilder::AtomicInfo Class Reference

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

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

Public Member Functions

 AtomicInfo (IRBuilder<> *Builder, llvm::Type *Ty, uint64_t AtomicSizeInBits, uint64_t ValueSizeInBits, llvm::Align AtomicAlign, llvm::Align ValueAlign, bool UseLibcall, 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)
 
virtual ~AtomicInfo ()=default
 
Align getAtomicAlignment () const
 
uint64_t getAtomicSizeInBits () const
 
uint64_t getValueSizeInBits () const
 
bool shouldUseLibcall () const
 
TypegetAtomicTy () const
 
virtual ValuegetAtomicPointer () const =0
 
virtual void decorateWithTBAA (Instruction *I)=0
 
virtual AllocaInstCreateAlloca (Type *Ty, const Twine &Name) const =0
 
bool hasPadding () const
 
LLVMContextgetLLVMContext () const
 
bool shouldCastToInt (Type *ValTy, bool CmpXchg)
 
ValueEmitAtomicLoadOp (AtomicOrdering AO, bool IsVolatile, bool CmpXchg=false)
 
CallInstEmitAtomicLibcall (StringRef fnName, Type *ResultType, ArrayRef< Value * > Args)
 
ValuegetAtomicSizeValue () const
 
std::pair< Value *, Value * > EmitAtomicCompareExchangeLibcall (Value *ExpectedVal, Value *DesiredVal, AtomicOrdering Success, AtomicOrdering Failure)
 
ValuecastToAtomicIntPointer (Value *addr) const
 
ValuegetAtomicAddressAsAtomicIntPointer () const
 
std::pair< Value *, Value * > EmitAtomicCompareExchangeOp (Value *ExpectedVal, Value *DesiredVal, AtomicOrdering Success, AtomicOrdering Failure, bool IsVolatile=false, bool IsWeak=false)
 
std::pair< Value *, Value * > EmitAtomicCompareExchange (Value *ExpectedVal, Value *DesiredVal, AtomicOrdering Success, AtomicOrdering Failure, bool IsVolatile, bool IsWeak)
 
std::pair< LoadInst *, AllocaInst * > EmitAtomicLoadLibcall (AtomicOrdering AO)
 

Additional Inherited Members

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

Detailed Description

Definition at line 483 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,
llvm::Value AtomicVar 
)
inline

Definition at line 487 of file OMPIRBuilder.h.

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 495 of file OMPIRBuilder.h.

◆ getAtomicPointer()

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

Implements llvm::AtomicInfo.

Definition at line 494 of file OMPIRBuilder.h.


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