15 #ifndef LLVM_IR_ATTRIBUTESETNODE_H
16 #define LLVM_IR_ATTRIBUTESETNODE_H
43 uint64_t AvailableAttrs;
46 : NumAttrs(Attrs.
size()), AvailableAttrs(0) {
48 "Too many attributes for AvailableAttrs");
50 std::copy(Attrs.
begin(), Attrs.
end(), getTrailingObjects<Attribute>());
64 void operator delete(
void *p) { ::operator
delete(p); }
69 return AS.getAttributes(Index);
76 return AvailableAttrs & ((uint64_t)1) <<
Kind;
99 for (
const auto &Attr : AttrList)
106 #endif // LLVM_IR_ATTRIBUTESETNODE_H
std::pair< unsigned, Optional< unsigned > > getAllocSizeArgs() const
uint64_t getDereferenceableBytes() const
AttributeSetNode & operator=(const AttributeSetNode &)=delete
std::string getAsString(bool InAttrGrp) const
static void Profile(FoldingSetNodeID &ID, ArrayRef< Attribute > AttrList)
bool hasAttributes() const
ArrayRef< T > makeArrayRef(const T &OneElt)
Construct an ArrayRef from a single element.
This file contains the simple types necessary to represent the attributes associated with functions a...
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
size_t size() const
size - Get the array size.
FoldingSetNodeID - This class is used to gather all the unique data bits of a node.
This is an important class for using LLVM in a threaded context.
unsigned getAlignment() const
See the file comment for details on the usage of the TrailingObjects type.
Sentinal value useful for loops.
bool hasAttribute(Attribute::AttrKind Kind) const
Attribute::AttrKind getKindAsEnum() const
Return the attribute's kind as an enum (Attribute::AttrKind).
const Attribute * iterator
static GCRegistry::Add< ShadowStackGC > C("shadow-stack","Very portable GC for uncooperative code generators")
Node - This class is used to maintain the singly linked bucket list in a folding set.
unsigned getNumAttributes() const
Return the number of attributes this AttributeSet contains.
unsigned getStackAlignment() const
bool isStringAttribute() const
Return true if the attribute is a string (target-dependent) attribute.
uint64_t getDereferenceableOrNullBytes() const
void Profile(FoldingSetNodeID &ID) const
This header defines support for implementing classes that have some trailing object (or arrays of obj...
StringRef - Represent a constant reference to a string, i.e.
Attribute getAttribute(Attribute::AttrKind Kind) const
AttrKind
This enumeration lists the attributes that can be associated with parameters, function results...