Lines Matching defs:Kind
74 bool hasAttribute(StringRef Kind) const;
110 static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind) {
111 assert(Attribute::isEnumAttrKind(Kind) && "Expected enum attribute");
112 ID.AddInteger(Kind);
115 static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind,
117 assert(Attribute::isIntAttrKind(Kind) && "Expected int attribute");
118 ID.AddInteger(Kind);
122 static void Profile(FoldingSetNodeID &ID, StringRef Kind, StringRef Values) {
123 ID.AddString(Kind);
127 static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind,
129 ID.AddInteger(Kind);
133 static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind,
135 ID.AddInteger(Kind);
140 static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind,
142 ID.AddInteger(Kind);
162 Attribute::AttrKind Kind;
165 EnumAttributeImpl(AttrEntryKind ID, Attribute::AttrKind Kind)
166 : AttributeImpl(ID), Kind(Kind) {}
169 EnumAttributeImpl(Attribute::AttrKind Kind)
170 : AttributeImpl(EnumAttrEntry), Kind(Kind) {
171 assert(Kind != Attribute::AttrKind::None &&
175 Attribute::AttrKind getEnumKind() const { return Kind; }
182 IntAttributeImpl(Attribute::AttrKind Kind, uint64_t Val)
183 : EnumAttributeImpl(IntAttrEntry, Kind), Val(Val) {
184 assert(Attribute::isIntAttrKind(Kind) &&
203 StringAttributeImpl(StringRef Kind, StringRef Val = StringRef())
204 : AttributeImpl(StringAttrEntry), KindSize(Kind.size()),
208 llvm::copy(Kind, TrailingString);
221 static size_t totalSizeToAlloc(StringRef Kind, StringRef Val) {
222 return TrailingObjects::totalSizeToAlloc<char>(Kind.size() + 1 +
231 TypeAttributeImpl(Attribute::AttrKind Kind, Type *Ty)
232 : EnumAttributeImpl(TypeAttrEntry, Kind), Ty(Ty) {}
241 ConstantRangeAttributeImpl(Attribute::AttrKind Kind, const ConstantRange &CR)
242 : EnumAttributeImpl(ConstantRangeAttrEntry, Kind), CR(CR) {}
256 ConstantRangeListAttributeImpl(Attribute::AttrKind Kind,
258 : EnumAttributeImpl(ConstantRangeListAttrEntry, Kind), Size(Val.size()) {
286 bool hasAttribute(Attribute::AttrKind Kind) const {
287 return AvailableAttrs[Kind / 8] & (1 << (Kind % 8));
290 void addAttribute(Attribute::AttrKind Kind) {
291 AvailableAttrs[Kind / 8] |= 1 << (Kind % 8);
313 std::optional<Attribute> findEnumAttribute(Attribute::AttrKind Kind) const;
329 bool hasAttribute(Attribute::AttrKind Kind) const {
330 return AvailableAttrs.hasAttribute(Kind);
332 bool hasAttribute(StringRef Kind) const;
335 Attribute getAttribute(Attribute::AttrKind Kind) const;
336 Attribute getAttribute(StringRef Kind) const;
352 Type *getAttributeType(Attribute::AttrKind Kind) const;
398 bool hasFnAttribute(Attribute::AttrKind Kind) const {
399 return AvailableFunctionAttrs.hasAttribute(Kind);
405 bool hasAttrSomewhere(Attribute::AttrKind Kind,