LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | List of all members
llvm::AttrBuilder Class Reference

#include <Attributes.h>

Public Types

typedef std::pair< std::string,
std::string > 
td_type
 
typedef std::map< std::string,
std::string >::iterator 
td_iterator
 
typedef std::map< std::string,
std::string >::const_iterator 
td_const_iterator
 

Public Member Functions

 AttrBuilder ()
 
 AttrBuilder (uint64_t Val)
 
 AttrBuilder (const Attribute &A)
 
 AttrBuilder (AttributeSet AS, unsigned Idx)
 
 AttrBuilder (const AttrBuilder &B)
 
void clear ()
 
AttrBuilderaddAttribute (Attribute::AttrKind Val)
 Add an attribute to the builder. More...
 
AttrBuilderaddAttribute (Attribute A)
 Add the Attribute object to the builder. More...
 
AttrBuilderaddAttribute (StringRef A, StringRef V=StringRef())
 Add the target-dependent attribute to the builder. More...
 
AttrBuilderremoveAttribute (Attribute::AttrKind Val)
 Remove an attribute from the builder. More...
 
AttrBuilderremoveAttributes (AttributeSet A, uint64_t Index)
 Remove the attributes from the builder. More...
 
AttrBuilderremoveAttribute (StringRef A)
 Remove the target-dependent attribute to the builder. More...
 
AttrBuildermerge (const AttrBuilder &B)
 Add the attributes from the builder. More...
 
bool contains (Attribute::AttrKind A) const
 Return true if the builder has the specified attribute. More...
 
bool contains (StringRef A) const
 Return true if the builder has the specified target-dependent attribute. More...
 
bool hasAttributes () const
 Return true if the builder has IR-level attributes. More...
 
bool hasAttributes (AttributeSet A, uint64_t Index) const
 Return true if the builder has any attribute that's in the specified attribute. More...
 
bool hasAlignmentAttr () const
 Return true if the builder has an alignment attribute. More...
 
uint64_t getAlignment () const
 Retrieve the alignment attribute, if it exists. More...
 
uint64_t getStackAlignment () const
 Retrieve the stack alignment attribute, if it exists. More...
 
AttrBuilderaddAlignmentAttr (unsigned Align)
 This turns an int alignment (which must be a power of 2) into the form used internally in Attribute. More...
 
AttrBuilderaddStackAlignmentAttr (unsigned Align)
 This turns an int stack alignment (which must be a power of 2) into the form used internally in Attribute. More...
 
bool empty () const
 Return true if the builder contains no target-independent attributes. More...
 
td_iterator td_begin ()
 
td_iterator td_end ()
 
td_const_iterator td_begin () const
 
td_const_iterator td_end () const
 
bool td_empty () const
 
bool operator== (const AttrBuilder &B)
 
bool operator!= (const AttrBuilder &B)
 
AttrBuilderaddRawValue (uint64_t Val)
 Add the raw value to the internal representation. More...
 

Detailed Description

Definition at line 390 of file Attributes.h.

Member Typedef Documentation

typedef std::map<std::string, std::string>::const_iterator llvm::AttrBuilder::td_const_iterator

Definition at line 474 of file Attributes.h.

typedef std::map<std::string, std::string>::iterator llvm::AttrBuilder::td_iterator

Definition at line 473 of file Attributes.h.

typedef std::pair<std::string, std::string> llvm::AttrBuilder::td_type

Definition at line 472 of file Attributes.h.

Constructor & Destructor Documentation

llvm::AttrBuilder::AttrBuilder ( )
inline

Definition at line 396 of file Attributes.h.

llvm::AttrBuilder::AttrBuilder ( uint64_t  Val)
inlineexplicit

Definition at line 397 of file Attributes.h.

References addRawValue().

llvm::AttrBuilder::AttrBuilder ( const Attribute A)
inline

Definition at line 401 of file Attributes.h.

References addAttribute().

AttrBuilder::AttrBuilder ( AttributeSet  AS,
unsigned  Idx 
)
llvm::AttrBuilder::AttrBuilder ( const AttrBuilder B)
inline

Definition at line 405 of file Attributes.h.

Member Function Documentation

AttrBuilder & AttrBuilder::addAlignmentAttr ( unsigned  Align)

This turns an int alignment (which must be a power of 2) into the form used internally in Attribute.

Definition at line 1048 of file Attributes.cpp.

References Align(), llvm::Attribute::Alignment, and llvm::isPowerOf2_32().

Referenced by decodeLLVMAttributesForBitcode(), LLVMSetInstrParamAlignment(), and LLVMSetParamAlignment().

AttrBuilder & AttrBuilder::addAttribute ( Attribute::AttrKind  Val)
AttrBuilder & AttrBuilder::addAttribute ( Attribute  A)
AttrBuilder & AttrBuilder::addAttribute ( StringRef  A,
StringRef  V = StringRef() 
)

Add the target-dependent attribute to the builder.

Definition at line 992 of file Attributes.cpp.

References llvm::ARM_PROC::A.

AttrBuilder & AttrBuilder::addRawValue ( uint64_t  Val)
AttrBuilder & AttrBuilder::addStackAlignmentAttr ( unsigned  Align)

This turns an int stack alignment (which must be a power of 2) into the form used internally in Attribute.

Definition at line 1059 of file Attributes.cpp.

References Align(), llvm::isPowerOf2_32(), and llvm::Attribute::StackAlignment.

void AttrBuilder::clear ( )

Definition at line 963 of file Attributes.cpp.

bool llvm::AttrBuilder::contains ( Attribute::AttrKind  A) const
inline

Return true if the builder has the specified attribute.

Definition at line 434 of file Attributes.h.

References llvm::ARM_PROC::A, and llvm::Attribute::EndAttrKinds.

Referenced by llvm::AttributeSet::get().

bool AttrBuilder::contains ( StringRef  A) const

Return true if the builder has the specified target-dependent attribute.

Definition at line 1088 of file Attributes.cpp.

bool llvm::AttrBuilder::empty ( ) const
inline

Return true if the builder contains no target-independent attributes.

Definition at line 469 of file Attributes.h.

uint64_t llvm::AttrBuilder::getAlignment ( ) const
inline

Retrieve the alignment attribute, if it exists.

Definition at line 454 of file Attributes.h.

Referenced by llvm::AttributeSet::get().

uint64_t llvm::AttrBuilder::getStackAlignment ( ) const
inline

Retrieve the stack alignment attribute, if it exists.

Definition at line 457 of file Attributes.h.

Referenced by llvm::AttributeSet::get().

bool AttrBuilder::hasAlignmentAttr ( ) const

Return true if the builder has an alignment attribute.

Definition at line 1121 of file Attributes.cpp.

bool AttrBuilder::hasAttributes ( ) const

Return true if the builder has IR-level attributes.

Definition at line 1092 of file Attributes.cpp.

Referenced by llvm::AttributeSet::get().

bool AttrBuilder::hasAttributes ( AttributeSet  A,
uint64_t  Index 
) const
AttrBuilder & AttrBuilder::merge ( const AttrBuilder B)

Add the attributes from the builder.

Definition at line 1071 of file Attributes.cpp.

References I.

bool llvm::AttrBuilder::operator!= ( const AttrBuilder B)
inline

Definition at line 485 of file Attributes.h.

bool AttrBuilder::operator== ( const AttrBuilder B)

Definition at line 1125 of file Attributes.cpp.

References I.

AttrBuilder & AttrBuilder::removeAttribute ( Attribute::AttrKind  Val)

Remove an attribute from the builder.

Definition at line 997 of file Attributes.cpp.

References llvm::Attribute::Alignment, llvm::Attribute::EndAttrKinds, and llvm::Attribute::StackAlignment.

AttrBuilder & AttrBuilder::removeAttribute ( StringRef  A)

Remove the target-dependent attribute to the builder.

Definition at line 1041 of file Attributes.cpp.

References I.

AttrBuilder & AttrBuilder::removeAttributes ( AttributeSet  A,
uint64_t  Index 
)
td_iterator llvm::AttrBuilder::td_begin ( )
inline

Definition at line 476 of file Attributes.h.

Referenced by llvm::AttributeSet::get().

td_const_iterator llvm::AttrBuilder::td_begin ( ) const
inline

Definition at line 479 of file Attributes.h.

bool llvm::AttrBuilder::td_empty ( ) const
inline

Definition at line 482 of file Attributes.h.

td_iterator llvm::AttrBuilder::td_end ( )
inline

Definition at line 477 of file Attributes.h.

Referenced by llvm::AttributeSet::get().

td_const_iterator llvm::AttrBuilder::td_end ( ) const
inline

Definition at line 480 of file Attributes.h.


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