LLVM  6.0.0svn
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
llvm::AttributeList Class Reference

#include "llvm/IR/Attributes.h"

Public Types

enum  AttrIndex : unsigned { ReturnIndex = 0U, FunctionIndex = ~0U, FirstArgIndex = 1 }
 
using iterator = const AttributeSet *
 

Public Member Functions

 AttributeList ()=default
 
AttributeList addAttribute (LLVMContext &C, unsigned Index, Attribute::AttrKind Kind) const
 Add an attribute to the attribute set at the given index. More...
 
AttributeList addAttribute (LLVMContext &C, unsigned Index, StringRef Kind, StringRef Value=StringRef()) const
 Add an attribute to the attribute set at the given index. More...
 
AttributeList addAttribute (LLVMContext &C, unsigned Index, Attribute A) const
 Add an attribute to the attribute set at the given index. More...
 
AttributeList addAttributes (LLVMContext &C, unsigned Index, const AttrBuilder &B) const
 Add attributes to the attribute set at the given index. More...
 
AttributeList addParamAttribute (LLVMContext &C, unsigned ArgNo, Attribute::AttrKind Kind) const
 Add an argument attribute to the list. More...
 
AttributeList addParamAttribute (LLVMContext &C, unsigned ArgNo, StringRef Kind, StringRef Value=StringRef()) const
 Add an argument attribute to the list. More...
 
AttributeList addParamAttribute (LLVMContext &C, ArrayRef< unsigned > ArgNos, Attribute A) const
 Add an attribute to the attribute list at the given arg indices. More...
 
AttributeList addParamAttributes (LLVMContext &C, unsigned ArgNo, const AttrBuilder &B) const
 Add an argument attribute to the list. More...
 
AttributeList removeAttribute (LLVMContext &C, unsigned Index, Attribute::AttrKind Kind) const
 Remove the specified attribute at the specified index from this attribute list. More...
 
AttributeList removeAttribute (LLVMContext &C, unsigned Index, StringRef Kind) const
 Remove the specified attribute at the specified index from this attribute list. More...
 
AttributeList removeAttributes (LLVMContext &C, unsigned Index, const AttrBuilder &AttrsToRemove) const
 Remove the specified attributes at the specified index from this attribute list. More...
 
AttributeList removeAttributes (LLVMContext &C, unsigned Index) const
 Remove all attributes at the specified index from this attribute list. More...
 
AttributeList removeParamAttribute (LLVMContext &C, unsigned ArgNo, Attribute::AttrKind Kind) const
 Remove the specified attribute at the specified arg index from this attribute list. More...
 
AttributeList removeParamAttribute (LLVMContext &C, unsigned ArgNo, StringRef Kind) const
 Remove the specified attribute at the specified arg index from this attribute list. More...
 
AttributeList removeParamAttributes (LLVMContext &C, unsigned ArgNo, const AttrBuilder &AttrsToRemove) const
 Remove the specified attribute at the specified arg index from this attribute list. More...
 
AttributeList removeParamAttributes (LLVMContext &C, unsigned ArgNo) const
 Remove all attributes at the specified arg index from this attribute list. More...
 
AttributeList addDereferenceableAttr (LLVMContext &C, unsigned Index, uint64_t Bytes) const
 Add the dereferenceable attribute to the attribute set at the given index. More...
 
AttributeList addDereferenceableParamAttr (LLVMContext &C, unsigned ArgNo, uint64_t Bytes) const
 Add the dereferenceable attribute to the attribute set at the given arg index. More...
 
AttributeList addDereferenceableOrNullAttr (LLVMContext &C, unsigned Index, uint64_t Bytes) const
 Add the dereferenceable_or_null attribute to the attribute set at the given index. More...
 
AttributeList addDereferenceableOrNullParamAttr (LLVMContext &C, unsigned ArgNo, uint64_t Bytes) const
 Add the dereferenceable_or_null attribute to the attribute set at the given arg index. More...
 
AttributeList addAllocSizeAttr (LLVMContext &C, unsigned Index, unsigned ElemSizeArg, const Optional< unsigned > &NumElemsArg)
 Add the allocsize attribute to the attribute set at the given index. More...
 
AttributeList addAllocSizeParamAttr (LLVMContext &C, unsigned ArgNo, unsigned ElemSizeArg, const Optional< unsigned > &NumElemsArg)
 Add the allocsize attribute to the attribute set at the given arg index. More...
 
LLVMContextgetContext () const
 Retrieve the LLVM context. More...
 
AttributeSet getAttributes (unsigned Index) const
 The attributes for the specified index are returned. More...
 
AttributeSet getParamAttributes (unsigned ArgNo) const
 The attributes for the argument or parameter at the given index are returned. More...
 
AttributeSet getRetAttributes () const
 The attributes for the ret value are returned. More...
 
AttributeSet getFnAttributes () const
 The function attributes are returned. More...
 
bool hasAttribute (unsigned Index, Attribute::AttrKind Kind) const
 Return true if the attribute exists at the given index. More...
 
bool hasAttribute (unsigned Index, StringRef Kind) const
 Return true if the attribute exists at the given index. More...
 
bool hasAttributes (unsigned Index) const
 Return true if attribute exists at the given index. More...
 
bool hasParamAttr (unsigned ArgNo, Attribute::AttrKind Kind) const
 Return true if the attribute exists for the given argument. More...
 
bool hasParamAttr (unsigned ArgNo, StringRef Kind) const
 Return true if the attribute exists for the given argument. More...
 
bool hasParamAttrs (unsigned ArgNo) const
 Return true if attributes exists for the given argument. More...
 
bool hasFnAttribute (Attribute::AttrKind Kind) const
 Equivalent to hasAttribute(AttributeList::FunctionIndex, Kind) but may be faster. More...
 
bool hasFnAttribute (StringRef Kind) const
 Equivalent to hasAttribute(AttributeList::FunctionIndex, Kind) but may be faster. More...
 
bool hasParamAttribute (unsigned ArgNo, Attribute::AttrKind Kind) const
 Equivalent to hasAttribute(ArgNo + FirstArgIndex, Kind). More...
 
bool hasAttrSomewhere (Attribute::AttrKind Kind, unsigned *Index=nullptr) const
 Return true if the specified attribute is set for at least one parameter or for the return value. More...
 
Attribute getAttribute (unsigned Index, Attribute::AttrKind Kind) const
 Return the attribute object that exists at the given index. More...
 
Attribute getAttribute (unsigned Index, StringRef Kind) const
 Return the attribute object that exists at the given index. More...
 
Attribute getParamAttr (unsigned ArgNo, Attribute::AttrKind Kind) const
 Return the attribute object that exists at the arg index. More...
 
Attribute getParamAttr (unsigned ArgNo, StringRef Kind) const
 Return the attribute object that exists at the given index. More...
 
unsigned getRetAlignment () const
 Return the alignment of the return value. More...
 
unsigned getParamAlignment (unsigned ArgNo) const
 Return the alignment for the specified function parameter. More...
 
unsigned getStackAlignment (unsigned Index) const
 Get the stack alignment. More...
 
uint64_t getDereferenceableBytes (unsigned Index) const
 Get the number of dereferenceable bytes (or zero if unknown). More...
 
uint64_t getParamDereferenceableBytes (unsigned ArgNo) const
 Get the number of dereferenceable bytes (or zero if unknown) of an arg. More...
 
uint64_t getDereferenceableOrNullBytes (unsigned Index) const
 Get the number of dereferenceable_or_null bytes (or zero if unknown). More...
 
uint64_t getParamDereferenceableOrNullBytes (unsigned ArgNo) const
 Get the number of dereferenceable_or_null bytes (or zero if unknown) of an arg. More...
 
std::pair< unsigned, Optional< unsigned > > getAllocSizeArgs (unsigned Index) const
 Get the allocsize argument numbers (or pair(0, 0) if unknown). More...
 
std::string getAsString (unsigned Index, bool InAttrGrp=false) const
 Return the attributes at the index as a string. More...
 
iterator begin () const
 
iterator end () const
 
unsigned getNumAttrSets () const
 
unsigned index_begin () const
 Use these to iterate over the valid attribute indices. More...
 
unsigned index_end () const
 
bool operator== (const AttributeList &RHS) const
 operator==/!= - Provide equality predicates. More...
 
bool operator!= (const AttributeList &RHS) const
 
void * getRawPointer () const
 Return a raw pointer that uniquely identifies this attribute list. More...
 
bool isEmpty () const
 Return true if there are no attributes. More...
 
void dump () const
 

Static Public Member Functions

static AttributeList get (LLVMContext &C, ArrayRef< std::pair< unsigned, Attribute >> Attrs)
 Create an AttributeList with the specified parameters in it. More...
 
static AttributeList get (LLVMContext &C, ArrayRef< std::pair< unsigned, AttributeSet >> Attrs)
 
static AttributeList get (LLVMContext &C, AttributeSet FnAttrs, AttributeSet RetAttrs, ArrayRef< AttributeSet > ArgAttrs)
 Create an AttributeList from attribute sets for a function, its return value, and all of its arguments. More...
 
static AttributeList get (LLVMContext &C, ArrayRef< AttributeList > Attrs)
 Return an AttributeList with the specified parameters in it. More...
 
static AttributeList get (LLVMContext &C, unsigned Index, ArrayRef< Attribute::AttrKind > Kinds)
 
static AttributeList get (LLVMContext &C, unsigned Index, ArrayRef< StringRef > Kind)
 
static AttributeList get (LLVMContext &C, unsigned Index, const AttrBuilder &B)
 

Friends

class AttrBuilder
 
class AttributeListImpl
 
class AttributeSet
 
class AttributeSetNode
 
template<typename Ty >
struct DenseMapInfo
 

Detailed Description

Definition at line 323 of file Attributes.h.

Member Typedef Documentation

◆ iterator

Definition at line 625 of file Attributes.h.

Member Enumeration Documentation

◆ AttrIndex

Enumerator
ReturnIndex 
FunctionIndex 
FirstArgIndex 

Definition at line 325 of file Attributes.h.

Constructor & Destructor Documentation

◆ AttributeList()

llvm::AttributeList::AttributeList ( )
default

Member Function Documentation

◆ addAllocSizeAttr()

AttributeList AttributeList::addAllocSizeAttr ( LLVMContext C,
unsigned  Index,
unsigned  ElemSizeArg,
const Optional< unsigned > &  NumElemsArg 
)

Add the allocsize attribute to the attribute set at the given index.

Returns a new list because attribute lists are immutable.

Definition at line 1163 of file Attributes.cpp.

References llvm::AttrBuilder::addAllocSizeAttr(), and B.

◆ addAllocSizeParamAttr()

AttributeList llvm::AttributeList::addAllocSizeParamAttr ( LLVMContext C,
unsigned  ArgNo,
unsigned  ElemSizeArg,
const Optional< unsigned > &  NumElemsArg 
)
inline

Add the allocsize attribute to the attribute set at the given arg index.

Returns a new list because attribute lists are immutable.

Definition at line 503 of file Attributes.h.

References llvm::Intrinsic::getAttributes(), and llvm::Attribute::hasAttribute().

◆ addAttribute() [1/3]

AttributeList AttributeList::addAttribute ( LLVMContext C,
unsigned  Index,
Attribute::AttrKind  Kind 
) const

Add an attribute to the attribute set at the given index.

Returns a new list because attribute lists are immutable.

Definition at line 1024 of file Attributes.cpp.

References llvm::AttrBuilder::addAttribute(), and B.

Referenced by llvm::Function::addAttribute(), llvm::CallInst::addAttribute(), llvm::InvokeInst::addAttribute(), fixupFPReturnAndCall(), llvm::objcarc::ARCRuntimeEntryPoints::get(), llvm::AMDGPULibFunc::getOrInsertFunction(), and GetRMWLibcall().

◆ addAttribute() [2/3]

AttributeList AttributeList::addAttribute ( LLVMContext C,
unsigned  Index,
StringRef  Kind,
StringRef  Value = StringRef() 
) const

Add an attribute to the attribute set at the given index.

Returns a new list because attribute lists are immutable.

Definition at line 1032 of file Attributes.cpp.

References llvm::AttrBuilder::addAttribute(), and B.

◆ addAttribute() [3/3]

AttributeList AttributeList::addAttribute ( LLVMContext C,
unsigned  Index,
Attribute  A 
) const

Add an attribute to the attribute set at the given index.

Returns a new list because attribute lists are immutable.

Definition at line 1040 of file Attributes.cpp.

References llvm::AttrBuilder::addAttribute(), and B.

◆ addAttributes()

AttributeList AttributeList::addAttributes ( LLVMContext C,
unsigned  Index,
const AttrBuilder B 
) const

◆ addDereferenceableAttr()

AttributeList AttributeList::addDereferenceableAttr ( LLVMContext C,
unsigned  Index,
uint64_t  Bytes 
) const

Add the dereferenceable attribute to the attribute set at the given index.

Returns a new list because attribute lists are immutable.

Definition at line 1146 of file Attributes.cpp.

References llvm::AttrBuilder::addDereferenceableAttr(), and B.

Referenced by llvm::Function::addDereferenceableAttr(), llvm::CallInst::addDereferenceableAttr(), and llvm::InvokeInst::addDereferenceableAttr().

◆ addDereferenceableOrNullAttr()

AttributeList AttributeList::addDereferenceableOrNullAttr ( LLVMContext C,
unsigned  Index,
uint64_t  Bytes 
) const

Add the dereferenceable_or_null attribute to the attribute set at the given index.

Returns a new list because attribute lists are immutable.

Definition at line 1155 of file Attributes.cpp.

References llvm::AttrBuilder::addDereferenceableOrNullAttr(), and B.

Referenced by llvm::Function::addDereferenceableOrNullAttr(), llvm::CallInst::addDereferenceableOrNullAttr(), and llvm::InvokeInst::addDereferenceableOrNullAttr().

◆ addDereferenceableOrNullParamAttr()

AttributeList llvm::AttributeList::addDereferenceableOrNullParamAttr ( LLVMContext C,
unsigned  ArgNo,
uint64_t  Bytes 
) const
inline

Add the dereferenceable_or_null attribute to the attribute set at the given arg index.

Returns a new list because attribute lists are immutable.

Definition at line 489 of file Attributes.h.

Referenced by llvm::Function::addDereferenceableOrNullParamAttr().

◆ addDereferenceableParamAttr()

AttributeList llvm::AttributeList::addDereferenceableParamAttr ( LLVMContext C,
unsigned  ArgNo,
uint64_t  Bytes 
) const
inline

Add the dereferenceable attribute to the attribute set at the given arg index.

Returns a new list because attribute lists are immutable.

Definition at line 476 of file Attributes.h.

Referenced by llvm::Function::addDereferenceableParamAttr().

◆ addParamAttribute() [1/3]

AttributeList llvm::AttributeList::addParamAttribute ( LLVMContext C,
unsigned  ArgNo,
Attribute::AttrKind  Kind 
) const
inline

Add an argument attribute to the list.

Returns a new list because attribute lists are immutable.

Definition at line 398 of file Attributes.h.

Referenced by llvm::Function::addParamAttr(), llvm::CallInst::addParamAttr(), llvm::InvokeInst::addParamAttr(), findInitTrampoline(), llvm::objcarc::ARCRuntimeEntryPoints::get(), and processCallSite().

◆ addParamAttribute() [2/3]

AttributeList llvm::AttributeList::addParamAttribute ( LLVMContext C,
unsigned  ArgNo,
StringRef  Kind,
StringRef  Value = StringRef() 
) const
inline

Add an argument attribute to the list.

Returns a new list because attribute lists are immutable.

Definition at line 405 of file Attributes.h.

References A.

◆ addParamAttribute() [3/3]

AttributeList AttributeList::addParamAttribute ( LLVMContext C,
ArrayRef< unsigned ArgNos,
Attribute  A 
) const

◆ addParamAttributes()

AttributeList llvm::AttributeList::addParamAttributes ( LLVMContext C,
unsigned  ArgNo,
const AttrBuilder B 
) const
inline

Add an argument attribute to the list.

Returns a new list because attribute lists are immutable.

Definition at line 418 of file Attributes.h.

Referenced by llvm::Argument::addAttrs(), and llvm::Function::addParamAttrs().

◆ begin()

AttributeList::iterator AttributeList::begin ( ) const

Definition at line 1275 of file Attributes.cpp.

References llvm::AttributeSet::begin().

◆ dump()

LLVM_DUMP_METHOD void AttributeList::dump ( ) const

Definition at line 1292 of file Attributes.cpp.

References llvm::dbgs(), and llvm::Intrinsic::getAttributes().

◆ end()

AttributeList::iterator AttributeList::end ( ) const

Definition at line 1279 of file Attributes.cpp.

References llvm::AttributeSet::end().

◆ get() [1/7]

AttributeList AttributeList::get ( LLVMContext C,
ArrayRef< std::pair< unsigned, Attribute >>  Attrs 
)
static

◆ get() [2/7]

AttributeList AttributeList::get ( LLVMContext C,
ArrayRef< std::pair< unsigned, AttributeSet >>  Attrs 
)
static

◆ get() [3/7]

AttributeList AttributeList::get ( LLVMContext C,
AttributeSet  FnAttrs,
AttributeSet  RetAttrs,
ArrayRef< AttributeSet ArgAttrs 
)
static

◆ get() [4/7]

AttributeList AttributeList::get ( LLVMContext C,
ArrayRef< AttributeList Attrs 
)
static

◆ get() [5/7]

AttributeList AttributeList::get ( LLVMContext C,
unsigned  Index,
ArrayRef< Attribute::AttrKind Kinds 
)
static

◆ get() [6/7]

AttributeList AttributeList::get ( LLVMContext C,
unsigned  Index,
ArrayRef< StringRef Kind 
)
static

◆ get() [7/7]

AttributeList AttributeList::get ( LLVMContext C,
unsigned  Index,
const AttrBuilder B 
)
static

◆ getAllocSizeArgs()

std::pair< unsigned, Optional< unsigned > > AttributeList::getAllocSizeArgs ( unsigned  Index) const

Get the allocsize argument numbers (or pair(0, 0) if unknown).

Definition at line 1260 of file Attributes.cpp.

References getAllocSizeArgs(), and llvm::Intrinsic::getAttributes().

Referenced by getAllocSizeArgs(), and isFuncOrArgAttr().

◆ getAsString()

std::string AttributeList::getAsString ( unsigned  Index,
bool  InAttrGrp = false 
) const

Return the attributes at the index as a string.

Definition at line 1264 of file Attributes.cpp.

References getAsString(), and llvm::Intrinsic::getAttributes().

Referenced by getAsString(), and maybePrintComdat().

◆ getAttribute() [1/2]

Attribute AttributeList::getAttribute ( unsigned  Index,
Attribute::AttrKind  Kind 
) const

◆ getAttribute() [2/2]

Attribute AttributeList::getAttribute ( unsigned  Index,
StringRef  Kind 
) const

Return the attribute object that exists at the given index.

Definition at line 1235 of file Attributes.cpp.

References getAttribute(), and llvm::Intrinsic::getAttributes().

◆ getAttributes()

AttributeSet AttributeList::getAttributes ( unsigned  Index) const

◆ getContext()

LLVMContext & AttributeList::getContext ( ) const

Retrieve the LLVM context.

Definition at line 1175 of file Attributes.cpp.

Referenced by legalizeCallAttributes().

◆ getDereferenceableBytes()

uint64_t AttributeList::getDereferenceableBytes ( unsigned  Index) const

Get the number of dereferenceable bytes (or zero if unknown).

Definition at line 1251 of file Attributes.cpp.

References llvm::Intrinsic::getAttributes(), and getDereferenceableBytes().

Referenced by llvm::Function::getDereferenceableBytes(), and getDereferenceableBytes().

◆ getDereferenceableOrNullBytes()

uint64_t AttributeList::getDereferenceableOrNullBytes ( unsigned  Index) const

Get the number of dereferenceable_or_null bytes (or zero if unknown).

Definition at line 1255 of file Attributes.cpp.

References llvm::Intrinsic::getAttributes(), and getDereferenceableOrNullBytes().

Referenced by llvm::Function::getDereferenceableOrNullBytes(), and getDereferenceableOrNullBytes().

◆ getFnAttributes()

AttributeSet AttributeList::getFnAttributes ( ) const

◆ getNumAttrSets()

unsigned AttributeList::getNumAttrSets ( ) const

Definition at line 1287 of file Attributes.cpp.

Referenced by llvm::FunctionComparator::cmpMem(), and isFuncOrArgAttr().

◆ getParamAlignment()

unsigned AttributeList::getParamAlignment ( unsigned  ArgNo) const

Return the alignment for the specified function parameter.

Definition at line 1243 of file Attributes.cpp.

References llvm::Intrinsic::getAttributes().

Referenced by getOpenCLAlignment(), llvm::Function::getParamAlignment(), and getParameterABIAttributes().

◆ getParamAttr() [1/2]

Attribute llvm::AttributeList::getParamAttr ( unsigned  ArgNo,
Attribute::AttrKind  Kind 
) const
inline

Return the attribute object that exists at the arg index.

Definition at line 577 of file Attributes.h.

Referenced by llvm::CallInst::getParamAttr().

◆ getParamAttr() [2/2]

Attribute llvm::AttributeList::getParamAttr ( unsigned  ArgNo,
StringRef  Kind 
) const
inline

Return the attribute object that exists at the given index.

Definition at line 582 of file Attributes.h.

References llvm::Attribute::getDereferenceableBytes(), and llvm::Attribute::getStackAlignment().

◆ getParamAttributes()

AttributeSet AttributeList::getParamAttributes ( unsigned  ArgNo) const

The attributes for the argument or parameter at the given index are returned.

Definition at line 1177 of file Attributes.cpp.

References llvm::Intrinsic::getAttributes().

Referenced by llvm::createDeadArgHackingPass(), doPromotion(), findInitTrampoline(), getRetComponentType(), getSignature(), getSuccPad(), isFuncOrArgAttr(), and maybePrintComdat().

◆ getParamDereferenceableBytes()

uint64_t llvm::AttributeList::getParamDereferenceableBytes ( unsigned  ArgNo) const
inline

Get the number of dereferenceable bytes (or zero if unknown) of an arg.

Definition at line 600 of file Attributes.h.

References llvm::Attribute::getDereferenceableBytes(), and llvm::Attribute::getDereferenceableOrNullBytes().

Referenced by llvm::Function::getParamDereferenceableBytes().

◆ getParamDereferenceableOrNullBytes()

uint64_t llvm::AttributeList::getParamDereferenceableOrNullBytes ( unsigned  ArgNo) const
inline

Get the number of dereferenceable_or_null bytes (or zero if unknown) of an arg.

Definition at line 610 of file Attributes.h.

References llvm::Attribute::getAllocSizeArgs(), llvm::Attribute::getAsString(), and llvm::Attribute::getDereferenceableOrNullBytes().

Referenced by llvm::Function::getParamDereferenceableOrNullBytes().

◆ getRawPointer()

void* llvm::AttributeList::getRawPointer ( ) const
inline

Return a raw pointer that uniquely identifies this attribute list.

Definition at line 641 of file Attributes.h.

◆ getRetAlignment()

unsigned AttributeList::getRetAlignment ( ) const

Return the alignment of the return value.

Definition at line 1239 of file Attributes.cpp.

References llvm::Intrinsic::getAttributes().

◆ getRetAttributes()

AttributeSet AttributeList::getRetAttributes ( ) const

◆ getStackAlignment()

unsigned AttributeList::getStackAlignment ( unsigned  Index) const

Get the stack alignment.

Definition at line 1247 of file Attributes.cpp.

References llvm::Intrinsic::getAttributes(), and getStackAlignment().

Referenced by llvm::Function::getFnStackAlignment(), and getStackAlignment().

◆ hasAttribute() [1/2]

bool AttributeList::hasAttribute ( unsigned  Index,
Attribute::AttrKind  Kind 
) const

◆ hasAttribute() [2/2]

bool AttributeList::hasAttribute ( unsigned  Index,
StringRef  Kind 
) const

Return true if the attribute exists at the given index.

Definition at line 1194 of file Attributes.cpp.

References llvm::Intrinsic::getAttributes(), and hasAttribute().

◆ hasAttributes()

bool AttributeList::hasAttributes ( unsigned  Index) const

Return true if attribute exists at the given index.

Definition at line 1198 of file Attributes.cpp.

References llvm::Intrinsic::getAttributes(), and hasAttributes().

Referenced by hasAttributes(), isFuncOrArgAttr(), and maybePrintComdat().

◆ hasAttrSomewhere()

bool AttributeList::hasAttrSomewhere ( Attribute::AttrKind  Kind,
unsigned Index = nullptr 
) const

◆ hasFnAttribute() [1/2]

bool AttributeList::hasFnAttribute ( Attribute::AttrKind  Kind) const

Equivalent to hasAttribute(AttributeList::FunctionIndex, Kind) but may be faster.

Definition at line 1202 of file Attributes.cpp.

Referenced by llvm::Function::hasFnAttribute(), and isFuncOrArgAttr().

◆ hasFnAttribute() [2/2]

bool AttributeList::hasFnAttribute ( StringRef  Kind) const

Equivalent to hasAttribute(AttributeList::FunctionIndex, Kind) but may be faster.

Definition at line 1206 of file Attributes.cpp.

References FunctionIndex.

◆ hasParamAttr() [1/2]

bool llvm::AttributeList::hasParamAttr ( unsigned  ArgNo,
Attribute::AttrKind  Kind 
) const
inline

Return true if the attribute exists for the given argument.

Definition at line 539 of file Attributes.h.

References llvm::Attribute::hasAttribute().

◆ hasParamAttr() [2/2]

bool llvm::AttributeList::hasParamAttr ( unsigned  ArgNo,
StringRef  Kind 
) const
inline

Return true if the attribute exists for the given argument.

Definition at line 544 of file Attributes.h.

References llvm::Attribute::hasAttribute().

◆ hasParamAttribute()

bool AttributeList::hasParamAttribute ( unsigned  ArgNo,
Attribute::AttrKind  Kind 
) const

◆ hasParamAttrs()

bool llvm::AttributeList::hasParamAttrs ( unsigned  ArgNo) const
inline

Return true if attributes exists for the given argument.

Definition at line 549 of file Attributes.h.

◆ index_begin()

unsigned llvm::AttributeList::index_begin ( ) const
inline

Use these to iterate over the valid attribute indices.

Definition at line 633 of file Attributes.h.

References FunctionIndex.

Referenced by llvm::FunctionComparator::cmpMem(), getAttrKindEncoding(), and getMetadataTypeOrder().

◆ index_end()

unsigned llvm::AttributeList::index_end ( ) const
inline

◆ isEmpty()

bool llvm::AttributeList::isEmpty ( ) const
inline

◆ operator!=()

bool llvm::AttributeList::operator!= ( const AttributeList RHS) const
inline

Definition at line 638 of file Attributes.h.

◆ operator==()

bool llvm::AttributeList::operator== ( const AttributeList RHS) const
inline

operator==/!= - Provide equality predicates.

Definition at line 637 of file Attributes.h.

◆ removeAttribute() [1/2]

AttributeList AttributeList::removeAttribute ( LLVMContext C,
unsigned  Index,
Attribute::AttrKind  Kind 
) const

Remove the specified attribute at the specified index from this attribute list.

Returns a new list because attribute lists are immutable.

Definition at line 1096 of file Attributes.cpp.

References llvm::AttrBuilder::addAttribute(), and B.

Referenced by llvm::emitUnaryFloatFnCall(), llvm::LLParser::parseTypeAtBeginning(), llvm::Function::removeAttribute(), llvm::CallInst::removeAttribute(), llvm::InvokeInst::removeAttribute(), and StripNest().

◆ removeAttribute() [2/2]

AttributeList AttributeList::removeAttribute ( LLVMContext C,
unsigned  Index,
StringRef  Kind 
) const

Remove the specified attribute at the specified index from this attribute list.

Returns a new list because attribute lists are immutable.

Definition at line 1104 of file Attributes.cpp.

References llvm::AttrBuilder::addAttribute(), and B.

◆ removeAttributes() [1/2]

AttributeList AttributeList::removeAttributes ( LLVMContext C,
unsigned  Index,
const AttrBuilder AttrsToRemove 
) const

◆ removeAttributes() [2/2]

AttributeList AttributeList::removeAttributes ( LLVMContext C,
unsigned  Index 
) const

Remove all attributes at the specified index from this attribute list.

Returns a new list because attribute lists are immutable.

Definition at line 1134 of file Attributes.cpp.

References llvm::AttributeListImpl::AttributeList, attrIdxToArrayIdx(), llvm::AttributeListImpl::begin(), llvm::AttributeListImpl::end(), and getImpl().

◆ removeParamAttribute() [1/2]

AttributeList llvm::AttributeList::removeParamAttribute ( LLVMContext C,
unsigned  ArgNo,
Attribute::AttrKind  Kind 
) const
inline

Remove the specified attribute at the specified arg index from this attribute list.

Returns a new list because attribute lists are immutable.

Definition at line 444 of file Attributes.h.

Referenced by llvm::Function::removeParamAttr(), llvm::CallInst::removeParamAttr(), and llvm::InvokeInst::removeParamAttr().

◆ removeParamAttribute() [2/2]

AttributeList llvm::AttributeList::removeParamAttribute ( LLVMContext C,
unsigned  ArgNo,
StringRef  Kind 
) const
inline

Remove the specified attribute at the specified arg index from this attribute list.

Returns a new list because attribute lists are immutable.

Definition at line 451 of file Attributes.h.

◆ removeParamAttributes() [1/2]

AttributeList llvm::AttributeList::removeParamAttributes ( LLVMContext C,
unsigned  ArgNo,
const AttrBuilder AttrsToRemove 
) const
inline

Remove the specified attribute at the specified arg index from this attribute list.

Returns a new list because attribute lists are immutable.

Definition at line 458 of file Attributes.h.

Referenced by llvm::Function::removeParamAttrs().

◆ removeParamAttributes() [2/2]

AttributeList llvm::AttributeList::removeParamAttributes ( LLVMContext C,
unsigned  ArgNo 
) const
inline

Remove all attributes at the specified arg index from this attribute list.

Returns a new list because attribute lists are immutable.

Definition at line 465 of file Attributes.h.

Friends And Related Function Documentation

◆ AttrBuilder

friend class AttrBuilder
friend

Definition at line 332 of file Attributes.h.

◆ AttributeListImpl

friend class AttributeListImpl
friend

Definition at line 333 of file Attributes.h.

◆ AttributeSet

friend class AttributeSet
friend

Definition at line 334 of file Attributes.h.

◆ AttributeSetNode

friend class AttributeSetNode
friend

Definition at line 335 of file Attributes.h.

◆ DenseMapInfo

template<typename Ty >
friend struct DenseMapInfo
friend

Definition at line 337 of file Attributes.h.


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