|
LLVM
3.7.0
|
#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 |
| typedef llvm::iterator_range < td_iterator > | td_range |
| typedef llvm::iterator_range < td_const_iterator > | td_const_range |
Public Member Functions | |
| AttrBuilder () | |
| AttrBuilder (uint64_t Val) | |
| AttrBuilder (const Attribute &A) | |
| AttrBuilder (AttributeSet AS, unsigned Idx) | |
| void | clear () |
| AttrBuilder & | addAttribute (Attribute::AttrKind Val) |
| Add an attribute to the builder. More... | |
| AttrBuilder & | addAttribute (Attribute A) |
| Add the Attribute object to the builder. More... | |
| AttrBuilder & | addAttribute (StringRef A, StringRef V=StringRef()) |
| Add the target-dependent attribute to the builder. More... | |
| AttrBuilder & | removeAttribute (Attribute::AttrKind Val) |
| Remove an attribute from the builder. More... | |
| AttrBuilder & | removeAttributes (AttributeSet A, uint64_t Index) |
| Remove the attributes from the builder. More... | |
| AttrBuilder & | removeAttribute (StringRef A) |
| Remove the target-dependent attribute to the builder. More... | |
| AttrBuilder & | merge (const AttrBuilder &B) |
| Add the attributes from the builder. More... | |
| AttrBuilder & | remove (const AttrBuilder &B) |
| Remove the attributes from the builder. More... | |
| bool | overlaps (const AttrBuilder &B) const |
| Return true if the builder has any attribute that's in the specified 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... | |
| uint64_t | getDereferenceableBytes () const |
| Retrieve the number of dereferenceable bytes, if the dereferenceable attribute exists (zero is returned otherwise). More... | |
| uint64_t | getDereferenceableOrNullBytes () const |
| Retrieve the number of dereferenceable_or_null bytes, if the dereferenceable_or_null attribute exists (zero is returned otherwise). More... | |
| AttrBuilder & | addAlignmentAttr (unsigned Align) |
| This turns an int alignment (which must be a power of 2) into the form used internally in Attribute. More... | |
| AttrBuilder & | addStackAlignmentAttr (unsigned Align) |
| This turns an int stack alignment (which must be a power of 2) into the form used internally in Attribute. More... | |
| AttrBuilder & | addDereferenceableAttr (uint64_t Bytes) |
| This turns the number of dereferenceable bytes into the form used internally in Attribute. More... | |
| AttrBuilder & | addDereferenceableOrNullAttr (uint64_t Bytes) |
| This turns the number of dereferenceable_or_null bytes 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 |
| td_range | td_attrs () |
| td_const_range | td_attrs () const |
| bool | td_empty () const |
| bool | operator== (const AttrBuilder &B) |
| bool | operator!= (const AttrBuilder &B) |
| AttrBuilder & | addRawValue (uint64_t Val) |
| Add the raw value to the internal representation. More... | |
Definition at line 435 of file Attributes.h.
| typedef std::map<std::string, std::string>::const_iterator llvm::AttrBuilder::td_const_iterator |
Definition at line 545 of file Attributes.h.
Definition at line 547 of file Attributes.h.
| typedef std::map<std::string, std::string>::iterator llvm::AttrBuilder::td_iterator |
Definition at line 544 of file Attributes.h.
Definition at line 546 of file Attributes.h.
| typedef std::pair<std::string, std::string> llvm::AttrBuilder::td_type |
Definition at line 543 of file Attributes.h.
|
inline |
Definition at line 443 of file Attributes.h.
|
inlineexplicit |
Definition at line 446 of file Attributes.h.
References addRawValue().
Definition at line 451 of file Attributes.h.
References addAttribute().
| AttrBuilder::AttrBuilder | ( | AttributeSet | AS, |
| unsigned | Idx | ||
| ) |
Definition at line 1095 of file Attributes.cpp.
References addAttribute(), llvm::AttributeSetImpl::begin(), llvm::AttributeSetImpl::end(), llvm::AttributeSetImpl::getNumAttributes(), llvm::AttributeSetImpl::getSlotIndex(), I, and llvm::ARM_PROC::IE.
| 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 1210 of file Attributes.cpp.
References Align(), llvm::Attribute::Alignment, and llvm::isPowerOf2_32().
Referenced by decodeLLVMAttributesForBitcode(), getParameterABIAttributes(), LLVMSetInstrParamAlignment(), and LLVMSetParamAlignment().
| AttrBuilder & AttrBuilder::addAttribute | ( | Attribute::AttrKind | Val | ) |
Add an attribute to the builder.
Definition at line 1117 of file Attributes.cpp.
References llvm::Attribute::Alignment, llvm::Attribute::Dereferenceable, llvm::Attribute::EndAttrKinds, and llvm::Attribute::StackAlignment.
Referenced by llvm::AttributeSet::addAttribute(), addAttribute(), llvm::AttributeSet::addAttributes(), AdjustCallerSSPLevel(), AttrBuilder(), getParameterABIAttributes(), LLVMAddTargetDependentFunctionAttr(), RemoveDerefAttrAtIndex(), ReplaceWithStatepoint(), and llvm::AttributeFuncs::typeIncompatible().
| AttrBuilder & AttrBuilder::addAttribute | ( | Attribute | A | ) |
Add the Attribute object to the builder.
Definition at line 1126 of file Attributes.cpp.
References addAttribute(), llvm::Attribute::Alignment, llvm::Attribute::Dereferenceable, llvm::Attribute::DereferenceableOrNull, llvm::Attribute::getAlignment(), llvm::Attribute::getDereferenceableBytes(), llvm::Attribute::getDereferenceableOrNullBytes(), llvm::Attribute::getKindAsEnum(), llvm::Attribute::getKindAsString(), llvm::Attribute::getStackAlignment(), llvm::Attribute::getValueAsString(), llvm::Attribute::isStringAttribute(), Kind, and llvm::Attribute::StackAlignment.
| AttrBuilder & AttrBuilder::addAttribute | ( | StringRef | A, |
| StringRef | V = StringRef() |
||
| ) |
Add the target-dependent attribute to the builder.
Definition at line 1146 of file Attributes.cpp.
References llvm::ARM_PROC::A.
| AttrBuilder & AttrBuilder::addDereferenceableAttr | ( | uint64_t | Bytes | ) |
This turns the number of dereferenceable bytes into the form used internally in Attribute.
Definition at line 1233 of file Attributes.cpp.
References llvm::Attribute::Dereferenceable.
Referenced by llvm::AttributeSet::addDereferenceableAttr(), and llvm::AttributeFuncs::typeIncompatible().
| AttrBuilder & AttrBuilder::addDereferenceableOrNullAttr | ( | uint64_t | Bytes | ) |
This turns the number of dereferenceable_or_null bytes into the form used internally in Attribute.
Definition at line 1241 of file Attributes.cpp.
References llvm::Attribute::DereferenceableOrNull.
Referenced by llvm::AttributeSet::addDereferenceableOrNullAttr(), and llvm::AttributeFuncs::typeIncompatible().
| AttrBuilder & AttrBuilder::addRawValue | ( | uint64_t | Val | ) |
Add the raw value to the internal representation.
Definition at line 1357 of file Attributes.cpp.
References llvm::ARM_PROC::A, llvm::Attribute::Alignment, llvm::Attribute::ArgMemOnly, llvm::Attribute::Dereferenceable, llvm::Attribute::DereferenceableOrNull, llvm::Attribute::EndAttrKinds, llvm::AttributeImpl::getAttrMask(), I, llvm::Attribute::None, and llvm::Attribute::StackAlignment.
Referenced by AttrBuilder(), and decodeLLVMAttributesForBitcode().
| 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 1221 of file Attributes.cpp.
References Align(), llvm::isPowerOf2_32(), and llvm::Attribute::StackAlignment.
| void AttrBuilder::clear | ( | ) |
Definition at line 1112 of file Attributes.cpp.
|
inline |
Return true if the builder has the specified attribute.
Definition at line 489 of file Attributes.h.
References llvm::ARM_PROC::A, and llvm::Attribute::EndAttrKinds.
Referenced by llvm::AttributeSet::get(), and overlaps().
Return true if the builder has the specified target-dependent attribute.
Definition at line 1307 of file Attributes.cpp.
|
inline |
Return true if the builder contains no target-independent attributes.
Definition at line 540 of file Attributes.h.
Referenced by RemoveDerefAttrAtIndex().
|
inline |
Retrieve the alignment attribute, if it exists.
Definition at line 509 of file Attributes.h.
Referenced by llvm::AttributeSet::get().
|
inline |
Retrieve the number of dereferenceable bytes, if the dereferenceable attribute exists (zero is returned otherwise).
Definition at line 516 of file Attributes.h.
Referenced by llvm::AttributeSet::get().
|
inline |
Retrieve the number of dereferenceable_or_null bytes, if the dereferenceable_or_null attribute exists (zero is returned otherwise).
Definition at line 520 of file Attributes.h.
Referenced by llvm::AttributeSet::get().
|
inline |
Retrieve the stack alignment attribute, if it exists.
Definition at line 512 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 1340 of file Attributes.cpp.
Referenced by llvm::AttributeSet::removeAttributes().
| bool AttrBuilder::hasAttributes | ( | ) | const |
Return true if the builder has IR-level attributes.
Definition at line 1311 of file Attributes.cpp.
Referenced by llvm::AttributeSet::get().
| bool AttrBuilder::hasAttributes | ( | AttributeSet | A, |
| uint64_t | Index | ||
| ) | const |
Return true if the builder has any attribute that's in the specified attribute.
Definition at line 1315 of file Attributes.cpp.
References llvm::AttributeSet::begin(), llvm::AttributeSet::end(), llvm::Attribute::getKindAsString(), llvm::AttributeSet::getNumSlots(), llvm::AttributeSet::getSlotIndex(), I, llvm::Attribute::isEnumAttribute(), llvm::Attribute::isIntAttribute(), llvm::Attribute::isStringAttribute(), and llvm::Slot.
| AttrBuilder & AttrBuilder::merge | ( | const AttrBuilder & | B | ) |
Add the attributes from the builder.
Definition at line 1250 of file Attributes.cpp.
References I, and td_attrs().
|
inline |
Definition at line 563 of file Attributes.h.
| bool AttrBuilder::operator== | ( | const AttrBuilder & | B | ) |
Definition at line 1344 of file Attributes.cpp.
References I.
| bool AttrBuilder::overlaps | ( | const AttrBuilder & | B | ) | const |
Return true if the builder has any attribute that's in the specified builder.
Definition at line 1294 of file Attributes.cpp.
References contains(), I, and td_attrs().
| AttrBuilder & AttrBuilder::remove | ( | const AttrBuilder & | B | ) |
Remove the attributes from the builder.
Definition at line 1272 of file Attributes.cpp.
References I, and td_attrs().
Referenced by llvm::AttributeSet::removeAttributes().
| AttrBuilder & AttrBuilder::removeAttribute | ( | Attribute::AttrKind | Val | ) |
Remove an attribute from the builder.
Definition at line 1151 of file Attributes.cpp.
References llvm::Attribute::Alignment, llvm::Attribute::Dereferenceable, llvm::Attribute::DereferenceableOrNull, llvm::Attribute::EndAttrKinds, and llvm::Attribute::StackAlignment.
| AttrBuilder & AttrBuilder::removeAttribute | ( | StringRef | A | ) |
Remove the target-dependent attribute to the builder.
Definition at line 1203 of file Attributes.cpp.
References I.
| AttrBuilder & AttrBuilder::removeAttributes | ( | AttributeSet | A, |
| uint64_t | Index | ||
| ) |
Remove the attributes from the builder.
Definition at line 1167 of file Attributes.cpp.
References llvm::Attribute::Alignment, llvm::AttributeSet::begin(), llvm::Attribute::Dereferenceable, llvm::Attribute::DereferenceableOrNull, llvm::AttributeSet::end(), llvm::Attribute::getKindAsString(), llvm::AttributeSet::getNumSlots(), llvm::AttributeSet::getSlotIndex(), I, llvm::Attribute::isEnumAttribute(), llvm::Attribute::isIntAttribute(), llvm::Attribute::isStringAttribute(), Kind, llvm::Slot, and llvm::Attribute::StackAlignment.
Referenced by llvm::AttributeSet::removeAttributes().
|
inline |
Definition at line 555 of file Attributes.h.
References td_begin(), and td_end().
Referenced by llvm::AttributeSet::get(), merge(), overlaps(), and remove().
|
inline |
Definition at line 556 of file Attributes.h.
References td_begin(), and td_end().
|
inline |
Definition at line 549 of file Attributes.h.
Referenced by td_attrs().
|
inline |
Definition at line 552 of file Attributes.h.
|
inline |
Definition at line 560 of file Attributes.h.
|
inline |
Definition at line 550 of file Attributes.h.
Referenced by td_attrs().
|
inline |
Definition at line 553 of file Attributes.h.
1.8.6