16 #ifndef LLVM_LIB_IR_ATTRIBUTEIMPL_H 17 #define LLVM_LIB_IR_ATTRIBUTEIMPL_H 102 virtual void anchor();
120 void anchor()
override;
129 "Wrong kind for int attribute!");
136 virtual void anchor();
159 uint64_t AvailableAttrs;
169 void operator delete(
void *p) { ::operator
delete(p); }
179 return AvailableAttrs & ((uint64_t)1) <<
Kind;
188 unsigned getStackAlignment()
const;
189 uint64_t getDereferenceableBytes()
const;
190 uint64_t getDereferenceableOrNullBytes()
const;
191 std::pair<unsigned, Optional<unsigned>> getAllocSizeArgs()
const;
192 std::string getAsString(
bool InAttrGrp)
const;
204 for (
const auto &Attr : AttrList)
223 uint64_t AvailableFunctionAttrs;
225 unsigned NumAttrSets;
228 size_t numTrailingObjects(OverloadToken<AttributeSet>) {
return NumAttrSets; }
237 void operator delete(
void *p) { ::operator
delete(p); }
245 return AvailableFunctionAttrs & ((uint64_t)1) <<
Kind;
261 #endif // LLVM_LIB_IR_ATTRIBUTEIMPL_H
const_iterator end(StringRef path)
Get end iterator over path.
bool hasAttribute(Attribute::AttrKind A) const
const_iterator begin(StringRef path, Style style=Style::native)
Get begin iterator over path.
This class represents lattice values for constants.
void Profile(FoldingSetNodeID &ID) const
StringAttributeImpl(StringRef Kind, StringRef Val=StringRef())
static void Profile(FoldingSetNodeID &ID, ArrayRef< Attribute > AttrList)
static uint32_t getAlignment(const MCSectionCOFF &Sec)
ArrayRef< T > makeArrayRef(const T &OneElt)
Construct an ArrayRef from a single element.
unsigned getNumAttributes() const
Return the number of attributes this AttributeList contains.
bool isIntAttribute() const
This file contains the simple types necessary to represent the attributes associated with functions a...
void AddInteger(signed I)
void Profile(FoldingSetNodeID &ID) const
uint64_t getValue() const
EnumAttributeImpl(AttrEntryKind ID, Attribute::AttrKind Kind)
EnumAttributeImpl(Attribute::AttrKind Kind)
StringRef getStringValue() const
StringRef getStringKind() const
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE bool empty() const
empty - Check if the string is empty.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
std::pair< unsigned, AttributeSet > IndexAttrPair
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.
FoldingSetNodeID - This class is used to gather all the unique data bits of a node.
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
This is an important class for using LLVM in a threaded context.
IntAttributeImpl(Attribute::AttrKind Kind, uint64_t Val)
bool isStringAttribute() const
See the file comment for details on the usage of the TrailingObjects type.
Attribute::AttrKind getKindAsEnum() const
bool operator<(const AttributeImpl &AI) const
Used when sorting the attributes.
bool hasFnAttribute(Attribute::AttrKind Kind) const
Return true if the AttributeSet or the FunctionIndex has an enum attribute of the given kind...
StringRef getKindAsString() const
bool isEnumAttribute() const
AttributeImpl(AttrEntryKind KindID)
bool hasAttribute(Attribute::AttrKind Kind) const
Attribute::AttrKind getEnumKind() const
static void Profile(FoldingSetNodeID &ID, Attribute::AttrKind Kind, uint64_t Val)
bool hasAttributes() const
Node - This class is used to maintain the singly linked bucket list in a folding set.
LLVMContext & getContext()
Get the context that created this AttributeListImpl.
void AddString(StringRef String)
uint64_t getValueAsInt() const
StringRef getValueAsString() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
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.
static void Profile(FoldingSetNodeID &ID, StringRef Kind, StringRef Values)
AttributeImpl & operator=(const AttributeImpl &)=delete
AttrKind
This enumeration lists the attributes that can be associated with parameters, function results...