LLVM  6.0.0svn
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. More...
 
 AttributeSet (const AttributeSet &)=default
 
 ~AttributeSet ()=default
 
bool operator== (const AttributeSet &O)
 
bool operator!= (const AttributeSet &O)
 
AttributeSet addAttribute (LLVMContext &C, Attribute::AttrKind Kind) const
 Add an argument attribute. More...
 
AttributeSet addAttribute (LLVMContext &C, StringRef Kind, StringRef Value=StringRef()) const
 Add a target-dependent attribute. More...
 
AttributeSet addAttributes (LLVMContext &C, AttributeSet AS) const
 Add attributes to the attribute set. More...
 
AttributeSet removeAttribute (LLVMContext &C, Attribute::AttrKind Kind) const
 Remove the specified attribute from this set. More...
 
AttributeSet removeAttribute (LLVMContext &C, StringRef Kind) const
 Remove the specified attribute from this set. More...
 
AttributeSet removeAttributes (LLVMContext &C, const AttrBuilder &AttrsToRemove) const
 Remove the specified attributes from this set. More...
 
unsigned getNumAttributes () const
 Return the number of attributes in this set. More...
 
bool hasAttributes () const
 Return true if attributes exists in this set. More...
 
bool hasAttribute (Attribute::AttrKind Kind) const
 Return true if the attribute exists in this set. More...
 
bool hasAttribute (StringRef Kind) const
 Return true if the attribute exists in this set. More...
 
Attribute getAttribute (Attribute::AttrKind Kind) const
 Return the attribute object. More...
 
Attribute getAttribute (StringRef Kind) const
 Return the target-dependent attribute object. More...
 
unsigned getAlignment () const
 
unsigned getStackAlignment () const
 
uint64_t getDereferenceableBytes () const
 
uint64_t getDereferenceableOrNullBytes () const
 
std::pair< unsigned, Optional< unsigned > > getAllocSizeArgs () const
 
std::string getAsString (bool InAttrGrp=false) const
 
iterator begin () const
 
iterator end () const
 
void dump () const
 

Static Public Member Functions

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

Friends

template<typename Ty >
struct DenseMapInfo
 

Detailed Description

Definition at line 205 of file Attributes.h.

Member Typedef Documentation

◆ iterator

Definition at line 282 of file Attributes.h.

Constructor & Destructor Documentation

◆ AttributeSet() [1/2]

llvm::AttributeSet::AttributeSet ( )
default

AttributeSet is a trivially copyable value type.

◆ 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 509 of file Attributes.cpp.

References llvm::AttrBuilder::addAttribute(), B, get(), and llvm::Attribute::hasAttribute().

◆ 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 517 of file Attributes.cpp.

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

◆ addAttributes()

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 524 of file Attributes.cpp.

References llvm::AttrBuilder::addAttribute(), AS, B, C, hasAttributes(), and I.

◆ begin()

AttributeSet::iterator AttributeSet::begin ( ) const

Definition at line 612 of file Attributes.cpp.

Referenced by llvm::AttributeList::begin(), and llvm::FunctionComparator::cmpMem().

◆ dump()

LLVM_DUMP_METHOD void AttributeSet::dump ( ) const

◆ end()

AttributeSet::iterator AttributeSet::end ( ) const

Definition at line 616 of file Attributes.cpp.

Referenced by llvm::FunctionComparator::cmpMem(), and llvm::AttributeList::end().

◆ get() [1/2]

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

◆ get() [2/2]

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

Definition at line 505 of file Attributes.cpp.

References llvm::AttributeSetNode::get().

◆ getAlignment()

unsigned AttributeSet::getAlignment ( ) const

Definition at line 587 of file Attributes.cpp.

◆ getAllocSizeArgs()

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

Definition at line 603 of file Attributes.cpp.

◆ getAsString()

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

Definition at line 608 of file Attributes.cpp.

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

◆ getAttribute() [1/2]

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

Return the attribute object.

Definition at line 579 of file Attributes.cpp.

References llvm::Attribute::Attribute().

◆ getAttribute() [2/2]

Attribute AttributeSet::getAttribute ( StringRef  Kind) const

Return the target-dependent attribute object.

Definition at line 583 of file Attributes.cpp.

References llvm::Attribute::Attribute().

◆ getDereferenceableBytes()

uint64_t AttributeSet::getDereferenceableBytes ( ) const

Definition at line 595 of file Attributes.cpp.

◆ getDereferenceableOrNullBytes()

uint64_t AttributeSet::getDereferenceableOrNullBytes ( ) const

Definition at line 599 of file Attributes.cpp.

◆ getNumAttributes()

unsigned AttributeSet::getNumAttributes ( ) const

Return the number of attributes in this set.

Definition at line 567 of file Attributes.cpp.

◆ getStackAlignment()

unsigned AttributeSet::getStackAlignment ( ) const

Definition at line 591 of file Attributes.cpp.

◆ hasAttribute() [1/2]

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

Return true if the attribute exists in this set.

Definition at line 571 of file Attributes.cpp.

Referenced by findInitTrampoline(), getRetComponentType(), getSuccPad(), llvm::GlobalVariable::hasImplicitSection(), and isFuncOrArgAttr().

◆ hasAttribute() [2/2]

bool AttributeSet::hasAttribute ( StringRef  Kind) const

Return true if the attribute exists in this set.

Definition at line 575 of file Attributes.cpp.

◆ hasAttributes()

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

◆ operator!=()

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

Definition at line 229 of file Attributes.h.

References AS, and Kind.

◆ operator==()

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

Definition at line 228 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 539 of file Attributes.cpp.

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

◆ 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 547 of file Attributes.cpp.

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

◆ removeAttributes()

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

Remove the specified attributes from this set.

Returns a new set because attribute sets are immutable.

Definition at line 555 of file Attributes.cpp.

References assert(), B, C, and llvm::AttrBuilder::hasAlignmentAttr().

Friends And Related Function Documentation

◆ DenseMapInfo

template<typename Ty >
friend struct DenseMapInfo
friend

Definition at line 214 of file Attributes.h.


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