LLVM 22.0.0git
|
This class represents a single, uniqued attribute. More...
#include "IR/AttributeImpl.h"
Static Public Member Functions | |
static void | Profile (FoldingSetNodeID &ID, Attribute::AttrKind Kind) |
static void | Profile (FoldingSetNodeID &ID, Attribute::AttrKind Kind, uint64_t Val) |
static void | Profile (FoldingSetNodeID &ID, StringRef Kind, StringRef Values) |
static void | Profile (FoldingSetNodeID &ID, Attribute::AttrKind Kind, Type *Ty) |
static void | Profile (FoldingSetNodeID &ID, Attribute::AttrKind Kind, const ConstantRange &CR) |
static void | Profile (FoldingSetNodeID &ID, Attribute::AttrKind Kind, ArrayRef< ConstantRange > Val) |
Protected Types | |
enum | AttrEntryKind { EnumAttrEntry , IntAttrEntry , StringAttrEntry , TypeAttrEntry , ConstantRangeAttrEntry , ConstantRangeListAttrEntry } |
Protected Member Functions | |
AttributeImpl (AttrEntryKind KindID) |
This class represents a single, uniqued attribute.
That attribute could be a single enum, a tuple, or a string.
Definition at line 42 of file AttributeImpl.h.
|
protected |
Enumerator | |
---|---|
EnumAttrEntry | |
IntAttrEntry | |
StringAttrEntry | |
TypeAttrEntry | |
ConstantRangeAttrEntry | |
ConstantRangeListAttrEntry |
Definition at line 46 of file AttributeImpl.h.
|
inlineprotected |
Definition at line 55 of file AttributeImpl.h.
Referenced by AttributeImpl(), cmp(), llvm::EnumAttributeImpl::EnumAttributeImpl(), llvm::EnumAttributeImpl::EnumAttributeImpl(), operator<(), operator=(), and llvm::StringAttributeImpl::StringAttributeImpl().
|
delete |
References AttributeImpl().
int AttributeImpl::cmp | ( | const AttributeImpl & | AI, |
bool | KindOnly ) const |
Used to sort attributes.
KindOnly controls if the sort includes the attributes' values or just the kind.
Definition at line 878 of file Attributes.cpp.
References assert(), AttributeImpl(), llvm::StringRef::compare(), getKindAsEnum(), getKindAsString(), getValueAsInt(), getValueAsString(), isConstantRangeAttribute(), isConstantRangeListAttribute(), isEnumAttribute(), isIntAttribute(), isStringAttribute(), and isTypeAttribute().
Referenced by operator<().
Attribute::AttrKind AttributeImpl::getKindAsEnum | ( | ) | const |
Definition at line 835 of file Attributes.cpp.
References assert(), isConstantRangeAttribute(), isConstantRangeListAttribute(), isEnumAttribute(), isIntAttribute(), and isTypeAttribute().
Referenced by cmp(), hasAttribute(), and Profile().
StringRef AttributeImpl::getKindAsString | ( | ) | const |
Definition at line 851 of file Attributes.cpp.
References assert(), and isStringAttribute().
Referenced by cmp(), hasAttribute(), and Profile().
bool AttributeImpl::getValueAsBool | ( | ) | const |
Definition at line 846 of file Attributes.cpp.
References assert(), and getValueAsString().
const ConstantRange & AttributeImpl::getValueAsConstantRange | ( | ) | const |
Definition at line 866 of file Attributes.cpp.
References assert(), and isConstantRangeAttribute().
Referenced by Profile().
ArrayRef< ConstantRange > AttributeImpl::getValueAsConstantRangeList | ( | ) | const |
Definition at line 872 of file Attributes.cpp.
References assert(), and isConstantRangeListAttribute().
Referenced by Profile().
uint64_t AttributeImpl::getValueAsInt | ( | ) | const |
Definition at line 841 of file Attributes.cpp.
References assert(), and isIntAttribute().
StringRef AttributeImpl::getValueAsString | ( | ) | const |
Definition at line 856 of file Attributes.cpp.
References assert(), and isStringAttribute().
Referenced by cmp(), getValueAsBool(), and Profile().
Type * AttributeImpl::getValueAsType | ( | ) | const |
Definition at line 861 of file Attributes.cpp.
References assert(), and isTypeAttribute().
Referenced by Profile().
bool AttributeImpl::hasAttribute | ( | Attribute::AttrKind | A | ) | const |
Definition at line 825 of file Attributes.cpp.
References A(), getKindAsEnum(), and isStringAttribute().
Definition at line 830 of file Attributes.cpp.
References getKindAsString(), and isStringAttribute().
|
inline |
Definition at line 66 of file AttributeImpl.h.
References ConstantRangeAttrEntry.
Referenced by cmp(), getKindAsEnum(), getValueAsConstantRange(), and Profile().
|
inline |
Definition at line 69 of file AttributeImpl.h.
References ConstantRangeListAttrEntry.
Referenced by cmp(), getKindAsEnum(), and getValueAsConstantRangeList().
|
inline |
Definition at line 62 of file AttributeImpl.h.
References EnumAttrEntry.
Referenced by cmp(), getKindAsEnum(), and Profile().
|
inline |
Definition at line 63 of file AttributeImpl.h.
References IntAttrEntry.
Referenced by cmp(), getKindAsEnum(), getValueAsInt(), and Profile().
|
inline |
Definition at line 64 of file AttributeImpl.h.
References StringAttrEntry.
Referenced by cmp(), getKindAsString(), getValueAsString(), hasAttribute(), hasAttribute(), and Profile().
|
inline |
Definition at line 65 of file AttributeImpl.h.
References TypeAttrEntry.
Referenced by cmp(), getKindAsEnum(), getValueAsType(), and Profile().
bool AttributeImpl::operator< | ( | const AttributeImpl & | AI | ) | const |
Used when sorting the attributes.
Definition at line 913 of file Attributes.cpp.
References AttributeImpl(), and cmp().
|
delete |
References AttributeImpl().
|
inline |
Definition at line 95 of file AttributeImpl.h.
References getKindAsEnum(), getKindAsString(), getValueAsConstantRange(), getValueAsConstantRangeList(), getValueAsInt(), getValueAsString(), getValueAsType(), isConstantRangeAttribute(), isEnumAttribute(), isIntAttribute(), isStringAttribute(), isTypeAttribute(), and Profile.
|
inlinestatic |
Definition at line 110 of file AttributeImpl.h.
References assert(), and llvm::Attribute::isEnumAttrKind().
|
inlinestatic |
Definition at line 140 of file AttributeImpl.h.
References llvm::ArrayRef< T >::size().
|
inlinestatic |
Definition at line 133 of file AttributeImpl.h.
References llvm::ConstantRange::getLower(), llvm::ConstantRange::getUpper(), and llvm::APInt::Profile().
|
inlinestatic |
Definition at line 127 of file AttributeImpl.h.
|
inlinestatic |
Definition at line 115 of file AttributeImpl.h.
References assert(), and llvm::Attribute::isIntAttrKind().
|
inlinestatic |
Definition at line 122 of file AttributeImpl.h.
References llvm::StringRef::empty().