Lines Matching full:attribute

1 //===- AttributeImpl.h - Attribute Internals --------------------*- C++ -*-===//
40 /// This class represents a single, uniqued attribute. That attribute
43 unsigned char KindID; ///< Holds the AttrEntryKind of the attribute
73 bool hasAttribute(Attribute::AttrKind A) const;
76 Attribute::AttrKind getKindAsEnum() const;
107 static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind) { in Profile()
108 assert(Attribute::isEnumAttrKind(Kind) && "Expected enum attribute"); in Profile()
112 static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind, in Profile()
114 assert(Attribute::isIntAttrKind(Kind) && "Expected int attribute"); in Profile()
124 static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind, in Profile()
130 static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind, in Profile()
137 static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind, in Profile()
154 /// attribute object. There are three main categories: enum attribute entries,
155 /// represented by Attribute::AttrKind; alignment attribute entries; and string
156 /// attribute enties, which are for target-dependent attributes.
159 Attribute::AttrKind Kind;
162 EnumAttributeImpl(AttrEntryKind ID, Attribute::AttrKind Kind) in EnumAttributeImpl()
166 EnumAttributeImpl(Attribute::AttrKind Kind) in EnumAttributeImpl()
168 assert(Kind != Attribute::AttrKind::None && in EnumAttributeImpl()
169 "Can't create a None attribute!"); in EnumAttributeImpl()
172 Attribute::AttrKind getEnumKind() const { return Kind; } in getEnumKind()
179 IntAttributeImpl(Attribute::AttrKind Kind, uint64_t Val) in IntAttributeImpl()
181 assert(Attribute::isIntAttrKind(Kind) && in IntAttributeImpl()
182 "Wrong kind for int attribute!"); in IntAttributeImpl()
228 TypeAttributeImpl(Attribute::AttrKind Kind, Type *Ty) in TypeAttributeImpl()
238 ConstantRangeAttributeImpl(Attribute::AttrKind Kind, const ConstantRange &CR) in ConstantRangeAttributeImpl()
253 ConstantRangeListAttributeImpl(Attribute::AttrKind Kind, in ConstantRangeListAttributeImpl()
277 /// Bitset with a bit for each available attribute Attribute::AttrKind.
279 static_assert(Attribute::EndAttrKinds <= sizeof(AvailableAttrs) * CHAR_BIT,
283 bool hasAttribute(Attribute::AttrKind Kind) const { in hasAttribute()
287 void addAttribute(Attribute::AttrKind Kind) { in addAttribute()
298 private TrailingObjects<AttributeSetNode, Attribute> {
304 DenseMap<StringRef, Attribute> StringAttrs;
306 AttributeSetNode(ArrayRef<Attribute> Attrs);
309 ArrayRef<Attribute> SortedAttrs);
310 std::optional<Attribute> findEnumAttribute(Attribute::AttrKind Kind) const;
321 static AttributeSetNode *get(LLVMContext &C, ArrayRef<Attribute> Attrs);
326 bool hasAttribute(Attribute::AttrKind Kind) const { in hasAttribute()
332 Attribute getAttribute(Attribute::AttrKind Kind) const;
333 Attribute getAttribute(StringRef Kind) const;
348 Type *getAttributeType(Attribute::AttrKind Kind) const;
350 using iterator = const Attribute *;
352 iterator begin() const { return getTrailingObjects<Attribute>(); } in begin()
359 static void Profile(FoldingSetNodeID &ID, ArrayRef<Attribute> AttrList) { in Profile()
393 /// enum attribute of the given kind.
394 bool hasFnAttribute(Attribute::AttrKind Kind) const { in hasFnAttribute()
398 /// Return true if the specified attribute is set for at least one
400 /// of a parameter with the specified attribute is provided.
401 bool hasAttrSomewhere(Attribute::AttrKind Kind,