LLVM 22.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
llvm::AttributeSet Class Reference

#include "llvm/IR/Attributes.h"

Public Types

using iterator = const Attribute *
 

Public Member Functions

 AttributeSet ()=default
 AttributeSet is a trivially copyable value type.
 
 AttributeSet (const AttributeSet &)=default
 
 ~AttributeSet ()=default
 
bool operator== (const AttributeSet &O) const
 
bool operator!= (const AttributeSet &O) const
 
LLVM_ABI AttributeSet addAttribute (LLVMContext &C, Attribute::AttrKind Kind) const
 Add an argument attribute.
 
LLVM_ABI AttributeSet addAttribute (LLVMContext &C, StringRef Kind, StringRef Value=StringRef()) const
 Add a target-dependent attribute.
 
LLVM_ABI AttributeSet addAttributes (LLVMContext &C, AttributeSet AS) const
 Add attributes to the attribute set.
 
AttributeSet addAttributes (LLVMContext &C, const AttrBuilder &B) const
 Add attributes to the attribute set.
 
LLVM_ABI AttributeSet removeAttribute (LLVMContext &C, Attribute::AttrKind Kind) const
 Remove the specified attribute from this set.
 
LLVM_ABI AttributeSet removeAttribute (LLVMContext &C, StringRef Kind) const
 Remove the specified attribute from this set.
 
LLVM_ABI AttributeSet removeAttributes (LLVMContext &C, const AttributeMask &AttrsToRemove) const
 Remove the specified attributes from this set.
 
LLVM_ABI std::optional< AttributeSetintersectWith (LLVMContext &C, AttributeSet Other) const
 Try to intersect this AttributeSet with Other.
 
LLVM_ABI unsigned getNumAttributes () const
 Return the number of attributes in this set.
 
bool hasAttributes () const
 Return true if attributes exists in this set.
 
LLVM_ABI bool hasAttribute (Attribute::AttrKind Kind) const
 Return true if the attribute exists in this set.
 
LLVM_ABI bool hasAttribute (StringRef Kind) const
 Return true if the attribute exists in this set.
 
LLVM_ABI Attribute getAttribute (Attribute::AttrKind Kind) const
 Return the attribute object.
 
LLVM_ABI Attribute getAttribute (StringRef Kind) const
 Return the target-dependent attribute object.
 
LLVM_ABI MaybeAlign getAlignment () const
 
LLVM_ABI MaybeAlign getStackAlignment () const
 
LLVM_ABI uint64_t getDereferenceableBytes () const
 
LLVM_ABI uint64_t getDereferenceableOrNullBytes () const
 
LLVM_ABI TypegetByValType () const
 
LLVM_ABI TypegetStructRetType () const
 
LLVM_ABI TypegetByRefType () const
 
LLVM_ABI TypegetPreallocatedType () const
 
LLVM_ABI TypegetInAllocaType () const
 
LLVM_ABI TypegetElementType () const
 
LLVM_ABI std::optional< std::pair< unsigned, std::optional< unsigned > > > getAllocSizeArgs () const
 
LLVM_ABI unsigned getVScaleRangeMin () const
 
LLVM_ABI std::optional< unsignedgetVScaleRangeMax () const
 
LLVM_ABI UWTableKind getUWTableKind () const
 
LLVM_ABI AllocFnKind getAllocKind () const
 
LLVM_ABI MemoryEffects getMemoryEffects () const
 
LLVM_ABI CaptureInfo getCaptureInfo () const
 
LLVM_ABI FPClassTest getNoFPClass () const
 
LLVM_ABI std::string getAsString (bool InAttrGrp=false) const
 
LLVM_ABI bool hasParentContext (LLVMContext &C) const
 Return true if this attribute set belongs to the LLVMContext.
 
LLVM_ABI iterator begin () const
 
LLVM_ABI iterator end () const
 
void dump () const
 

Static Public Member Functions

static LLVM_ABI AttributeSet get (LLVMContext &C, const AttrBuilder &B)
 
static LLVM_ABI AttributeSet get (LLVMContext &C, ArrayRef< Attribute > Attrs)
 

Friends

template<typename Ty , typename Enable >
struct DenseMapInfo
 

Detailed Description

Definition at line 361 of file Attributes.h.

Member Typedef Documentation

◆ iterator

Definition at line 469 of file Attributes.h.

Constructor & Destructor Documentation

◆ AttributeSet() [1/2]

llvm::AttributeSet::AttributeSet ( )
default

AttributeSet is a trivially copyable value type.

Referenced by get().

◆ AttributeSet() [2/2]

llvm::AttributeSet::AttributeSet ( const AttributeSet )
default

◆ ~AttributeSet()

llvm::AttributeSet::~AttributeSet ( )
default

Member Function Documentation

◆ addAttribute() [1/2]

AttributeSet AttributeSet::addAttribute ( LLVMContext C,
Attribute::AttrKind  Kind 
) const

Add an argument attribute.

Returns a new set because attribute sets are immutable.

Definition at line 929 of file Attributes.cpp.

References addAttributes(), B, llvm::CallingConv::C, get(), and hasAttribute().

Referenced by llvm::OpenMPIRBuilder::addAttributes().

◆ addAttribute() [2/2]

AttributeSet AttributeSet::addAttribute ( LLVMContext C,
StringRef  Kind,
StringRef  Value = StringRef() 
) const

Add a target-dependent attribute.

Returns a new set because attribute sets are immutable.

Definition at line 937 of file Attributes.cpp.

References addAttributes(), B, llvm::CallingConv::C, and get().

◆ addAttributes() [1/2]

AttributeSet AttributeSet::addAttributes ( LLVMContext C,
AttributeSet  AS 
) const

Add attributes to the attribute set.

Returns a new set because attribute sets are immutable.

Definition at line 944 of file Attributes.cpp.

References B, llvm::CallingConv::C, get(), and hasAttributes().

Referenced by addAttribute(), and llvm::OpenMPIRBuilder::addAttributes().

◆ addAttributes() [2/2]

AttributeSet AttributeSet::addAttributes ( LLVMContext C,
const AttrBuilder B 
) const

Add attributes to the attribute set.

Returns a new set because attribute sets are immutable.

Definition at line 957 of file Attributes.cpp.

References B, llvm::CallingConv::C, get(), hasAttributes(), and llvm::AttrBuilder::merge().

◆ begin()

AttributeSet::iterator AttributeSet::begin ( ) const

Definition at line 1234 of file Attributes.cpp.

References llvm::AttributeSetNode::begin().

Referenced by intersectWith().

◆ dump()

LLVM_DUMP_METHOD void AttributeSet::dump ( ) const

Definition at line 1243 of file Attributes.cpp.

References llvm::dbgs(), and getAsString().

◆ end()

AttributeSet::iterator AttributeSet::end ( ) const

Definition at line 1238 of file Attributes.cpp.

References llvm::AttributeSetNode::end().

Referenced by intersectWith().

◆ get() [1/2]

AttributeSet AttributeSet::get ( LLVMContext C,
ArrayRef< Attribute Attrs 
)
static

◆ get() [2/2]

AttributeSet AttributeSet::get ( LLVMContext C,
const AttrBuilder B 
)
static

◆ getAlignment()

MaybeAlign AttributeSet::getAlignment ( ) const

◆ getAllocKind()

AllocFnKind AttributeSet::getAllocKind ( ) const

◆ getAllocSizeArgs()

std::optional< std::pair< unsigned, std::optional< unsigned > > > AttributeSet::getAllocSizeArgs ( ) const

Definition at line 1188 of file Attributes.cpp.

References llvm::AttributeSetNode::getAllocSizeArgs().

Referenced by doPromotion().

◆ getAsString()

std::string AttributeSet::getAsString ( bool  InAttrGrp = false) const

Definition at line 1222 of file Attributes.cpp.

References llvm::AttributeSetNode::getAsString().

Referenced by dump(), and llvm::AttributeList::getAsString().

◆ getAttribute() [1/2]

Attribute AttributeSet::getAttribute ( Attribute::AttrKind  Kind) const

◆ getAttribute() [2/2]

Attribute AttributeSet::getAttribute ( StringRef  Kind) const

Return the target-dependent attribute object.

Definition at line 1143 of file Attributes.cpp.

References llvm::AttributeSetNode::getAttribute().

◆ getByRefType()

Type * AttributeSet::getByRefType ( ) const

◆ getByValType()

Type * AttributeSet::getByValType ( ) const

◆ getCaptureInfo()

CaptureInfo AttributeSet::getCaptureInfo ( ) const

◆ getDereferenceableBytes()

uint64_t AttributeSet::getDereferenceableBytes ( ) const

◆ getDereferenceableOrNullBytes()

uint64_t AttributeSet::getDereferenceableOrNullBytes ( ) const

◆ getElementType()

Type * AttributeSet::getElementType ( ) const

◆ getInAllocaType()

Type * AttributeSet::getInAllocaType ( ) const

◆ getMemoryEffects()

MemoryEffects AttributeSet::getMemoryEffects ( ) const

◆ getNoFPClass()

FPClassTest AttributeSet::getNoFPClass ( ) const

◆ getNumAttributes()

unsigned AttributeSet::getNumAttributes ( ) const

Return the number of attributes in this set.

Definition at line 1127 of file Attributes.cpp.

References llvm::AttributeSetNode::getNumAttributes().

◆ getPreallocatedType()

Type * AttributeSet::getPreallocatedType ( ) const

◆ getStackAlignment()

MaybeAlign AttributeSet::getStackAlignment ( ) const

◆ getStructRetType()

Type * AttributeSet::getStructRetType ( ) const

◆ getUWTableKind()

UWTableKind AttributeSet::getUWTableKind ( ) const

◆ getVScaleRangeMax()

std::optional< unsigned > AttributeSet::getVScaleRangeMax ( ) const

Definition at line 1198 of file Attributes.cpp.

References llvm::AttributeSetNode::getVScaleRangeMax().

◆ getVScaleRangeMin()

unsigned AttributeSet::getVScaleRangeMin ( ) const

Definition at line 1194 of file Attributes.cpp.

References llvm::AttributeSetNode::getVScaleRangeMin().

◆ hasAttribute() [1/2]

bool AttributeSet::hasAttribute ( Attribute::AttrKind  Kind) const

◆ hasAttribute() [2/2]

bool AttributeSet::hasAttribute ( StringRef  Kind) const

Return true if the attribute exists in this set.

Definition at line 1135 of file Attributes.cpp.

References llvm::AttributeSetNode::hasAttribute().

◆ hasAttributes()

bool llvm::AttributeSet::hasAttributes ( ) const
inline

Return true if attributes exists in this set.

Definition at line 431 of file Attributes.h.

Referenced by addAttributes(), llvm::AttributeList::get(), llvm::AttributeList::hasAttributesAtIndex(), and hasParentContext().

◆ hasParentContext()

bool AttributeSet::hasParentContext ( LLVMContext C) const

Return true if this attribute set belongs to the LLVMContext.

Definition at line 1226 of file Attributes.cpp.

References assert(), llvm::CallingConv::C, hasAttributes(), and llvm::AttributeSetNode::Profile().

◆ intersectWith()

std::optional< AttributeSet > AttributeSet::intersectWith ( LLVMContext C,
AttributeSet  Other 
) const

◆ operator!=()

bool llvm::AttributeSet::operator!= ( const AttributeSet O) const
inline

Definition at line 385 of file Attributes.h.

◆ operator==()

bool llvm::AttributeSet::operator== ( const AttributeSet O) const
inline

Definition at line 384 of file Attributes.h.

◆ removeAttribute() [1/2]

AttributeSet AttributeSet::removeAttribute ( LLVMContext C,
Attribute::AttrKind  Kind 
) const

Remove the specified attribute from this set.

Returns a new set because attribute sets are immutable.

Definition at line 970 of file Attributes.cpp.

References B, llvm::CallingConv::C, get(), and hasAttribute().

Referenced by AddParamAndFnBasicAttributes().

◆ removeAttribute() [2/2]

AttributeSet AttributeSet::removeAttribute ( LLVMContext C,
StringRef  Kind 
) const

Remove the specified attribute from this set.

Returns a new set because attribute sets are immutable.

Definition at line 978 of file Attributes.cpp.

References B, llvm::CallingConv::C, get(), and hasAttribute().

◆ removeAttributes()

AttributeSet AttributeSet::removeAttributes ( LLVMContext C,
const AttributeMask AttrsToRemove 
) const

Remove the specified attributes from this set.

Returns a new set because attribute sets are immutable.

Definition at line 986 of file Attributes.cpp.

References B, llvm::CallingConv::C, and get().

Referenced by moveFunctionAdaptingType().

Friends And Related Function Documentation

◆ DenseMapInfo

template<typename Ty , typename Enable >
friend struct DenseMapInfo
friend

Definition at line 363 of file Attributes.h.


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