Lines Matching refs:Attribute

81 Attribute Attribute::get(LLVMContext &Context, Attribute::AttrKind Kind,  in get()
102 return Attribute(PA); in get()
105 Attribute Attribute::get(LLVMContext &Context, StringRef Kind, StringRef Val) { in get()
122 return Attribute(PA); in get()
125 Attribute Attribute::getWithAlignment(LLVMContext &Context, uint64_t Align) { in getWithAlignment()
131 Attribute Attribute::getWithStackAlignment(LLVMContext &Context, in getWithStackAlignment()
138 Attribute Attribute::getWithDereferenceableBytes(LLVMContext &Context, in getWithDereferenceableBytes()
144 Attribute Attribute::getWithDereferenceableOrNullBytes(LLVMContext &Context, in getWithDereferenceableOrNullBytes()
150 Attribute
151 Attribute::getWithAllocSizeArgs(LLVMContext &Context, unsigned ElemSizeArg, in getWithAllocSizeArgs()
162 bool Attribute::isEnumAttribute() const { in isEnumAttribute()
166 bool Attribute::isIntAttribute() const { in isIntAttribute()
170 bool Attribute::isStringAttribute() const { in isStringAttribute()
174 Attribute::AttrKind Attribute::getKindAsEnum() const { in getKindAsEnum()
181 uint64_t Attribute::getValueAsInt() const { in getValueAsInt()
188 StringRef Attribute::getKindAsString() const { in getKindAsString()
195 StringRef Attribute::getValueAsString() const { in getValueAsString()
202 bool Attribute::hasAttribute(AttrKind Kind) const { in hasAttribute()
206 bool Attribute::hasAttribute(StringRef Kind) const { in hasAttribute()
211 unsigned Attribute::getAlignment() const { in getAlignment()
212 assert(hasAttribute(Attribute::Alignment) && in getAlignment()
217 unsigned Attribute::getStackAlignment() const { in getStackAlignment()
218 assert(hasAttribute(Attribute::StackAlignment) && in getStackAlignment()
223 uint64_t Attribute::getDereferenceableBytes() const { in getDereferenceableBytes()
224 assert(hasAttribute(Attribute::Dereferenceable) && in getDereferenceableBytes()
230 uint64_t Attribute::getDereferenceableOrNullBytes() const { in getDereferenceableOrNullBytes()
231 assert(hasAttribute(Attribute::DereferenceableOrNull) && in getDereferenceableOrNullBytes()
237 std::pair<unsigned, Optional<unsigned>> Attribute::getAllocSizeArgs() const { in getAllocSizeArgs()
238 assert(hasAttribute(Attribute::AllocSize) && in getAllocSizeArgs()
243 std::string Attribute::getAsString(bool InAttrGrp) const { in getAsString()
246 if (hasAttribute(Attribute::SanitizeAddress)) in getAsString()
248 if (hasAttribute(Attribute::SanitizeHWAddress)) in getAsString()
250 if (hasAttribute(Attribute::AlwaysInline)) in getAsString()
252 if (hasAttribute(Attribute::ArgMemOnly)) in getAsString()
254 if (hasAttribute(Attribute::Builtin)) in getAsString()
256 if (hasAttribute(Attribute::ByVal)) in getAsString()
258 if (hasAttribute(Attribute::Convergent)) in getAsString()
260 if (hasAttribute(Attribute::SwiftError)) in getAsString()
262 if (hasAttribute(Attribute::SwiftSelf)) in getAsString()
264 if (hasAttribute(Attribute::InaccessibleMemOnly)) in getAsString()
266 if (hasAttribute(Attribute::InaccessibleMemOrArgMemOnly)) in getAsString()
268 if (hasAttribute(Attribute::InAlloca)) in getAsString()
270 if (hasAttribute(Attribute::InlineHint)) in getAsString()
272 if (hasAttribute(Attribute::InReg)) in getAsString()
274 if (hasAttribute(Attribute::JumpTable)) in getAsString()
276 if (hasAttribute(Attribute::MinSize)) in getAsString()
278 if (hasAttribute(Attribute::Naked)) in getAsString()
280 if (hasAttribute(Attribute::Nest)) in getAsString()
282 if (hasAttribute(Attribute::NoAlias)) in getAsString()
284 if (hasAttribute(Attribute::NoBuiltin)) in getAsString()
286 if (hasAttribute(Attribute::NoCapture)) in getAsString()
288 if (hasAttribute(Attribute::NoDuplicate)) in getAsString()
290 if (hasAttribute(Attribute::NoImplicitFloat)) in getAsString()
292 if (hasAttribute(Attribute::NoInline)) in getAsString()
294 if (hasAttribute(Attribute::NonLazyBind)) in getAsString()
296 if (hasAttribute(Attribute::NonNull)) in getAsString()
298 if (hasAttribute(Attribute::NoRedZone)) in getAsString()
300 if (hasAttribute(Attribute::NoReturn)) in getAsString()
302 if (hasAttribute(Attribute::NoCfCheck)) in getAsString()
304 if (hasAttribute(Attribute::NoRecurse)) in getAsString()
306 if (hasAttribute(Attribute::NoUnwind)) in getAsString()
308 if (hasAttribute(Attribute::OptForFuzzing)) in getAsString()
310 if (hasAttribute(Attribute::OptimizeNone)) in getAsString()
312 if (hasAttribute(Attribute::OptimizeForSize)) in getAsString()
314 if (hasAttribute(Attribute::ReadNone)) in getAsString()
316 if (hasAttribute(Attribute::ReadOnly)) in getAsString()
318 if (hasAttribute(Attribute::WriteOnly)) in getAsString()
320 if (hasAttribute(Attribute::Returned)) in getAsString()
322 if (hasAttribute(Attribute::ReturnsTwice)) in getAsString()
324 if (hasAttribute(Attribute::SExt)) in getAsString()
326 if (hasAttribute(Attribute::SpeculativeLoadHardening)) in getAsString()
328 if (hasAttribute(Attribute::Speculatable)) in getAsString()
330 if (hasAttribute(Attribute::StackProtect)) in getAsString()
332 if (hasAttribute(Attribute::StackProtectReq)) in getAsString()
334 if (hasAttribute(Attribute::StackProtectStrong)) in getAsString()
336 if (hasAttribute(Attribute::SafeStack)) in getAsString()
338 if (hasAttribute(Attribute::ShadowCallStack)) in getAsString()
340 if (hasAttribute(Attribute::StrictFP)) in getAsString()
342 if (hasAttribute(Attribute::StructRet)) in getAsString()
344 if (hasAttribute(Attribute::SanitizeThread)) in getAsString()
346 if (hasAttribute(Attribute::SanitizeMemory)) in getAsString()
348 if (hasAttribute(Attribute::UWTable)) in getAsString()
350 if (hasAttribute(Attribute::ZExt)) in getAsString()
352 if (hasAttribute(Attribute::Cold)) in getAsString()
360 if (hasAttribute(Attribute::Alignment)) { in getAsString()
382 if (hasAttribute(Attribute::StackAlignment)) in getAsString()
385 if (hasAttribute(Attribute::Dereferenceable)) in getAsString()
388 if (hasAttribute(Attribute::DereferenceableOrNull)) in getAsString()
391 if (hasAttribute(Attribute::AllocSize)) { in getAsString()
433 bool Attribute::operator<(Attribute A) const { in operator <()
453 bool AttributeImpl::hasAttribute(Attribute::AttrKind A) const { in hasAttribute()
463 Attribute::AttrKind AttributeImpl::getKindAsEnum() const { in getKindAsEnum()
517 AttributeSet AttributeSet::get(LLVMContext &C, ArrayRef<Attribute> Attrs) { in get()
522 Attribute::AttrKind Kind) const { in addAttribute()
552 Attribute::AttrKind Kind) const { in removeAttribute()
578 bool AttributeSet::hasAttribute(Attribute::AttrKind Kind) const { in hasAttribute()
586 Attribute AttributeSet::getAttribute(Attribute::AttrKind Kind) const { in getAttribute()
587 return SetNode ? SetNode->getAttribute(Kind) : Attribute(); in getAttribute()
590 Attribute AttributeSet::getAttribute(StringRef Kind) const { in getAttribute()
591 return SetNode ? SetNode->getAttribute(Kind) : Attribute(); in getAttribute()
639 AttributeSetNode::AttributeSetNode(ArrayRef<Attribute> Attrs) in AttributeSetNode()
642 llvm::copy(Attrs, getTrailingObjects<Attribute>()); in AttributeSetNode()
652 ArrayRef<Attribute> Attrs) { in get()
660 SmallVector<Attribute, 8> SortedAttrs(Attrs.begin(), Attrs.end()); in get()
674 void *Mem = ::operator new(totalSizeToAlloc<Attribute>(SortedAttrs.size())); in get()
685 SmallVector<Attribute, 8> Attrs; in get()
686 for (Attribute::AttrKind Kind = Attribute::None; in get()
687 Kind != Attribute::EndAttrKinds; Kind = Attribute::AttrKind(Kind + 1)) { in get()
691 Attribute Attr; in get()
693 case Attribute::Alignment: in get()
694 Attr = Attribute::getWithAlignment(C, B.getAlignment()); in get()
696 case Attribute::StackAlignment: in get()
697 Attr = Attribute::getWithStackAlignment(C, B.getStackAlignment()); in get()
699 case Attribute::Dereferenceable: in get()
700 Attr = Attribute::getWithDereferenceableBytes( in get()
703 case Attribute::DereferenceableOrNull: in get()
704 Attr = Attribute::getWithDereferenceableOrNullBytes( in get()
707 case Attribute::AllocSize: { in get()
709 Attr = Attribute::getWithAllocSizeArgs(C, A.first, A.second); in get()
713 Attr = Attribute::get(C, Kind); in get()
720 Attrs.emplace_back(Attribute::get(C, TDA.first, TDA.second)); in get()
732 Attribute AttributeSetNode::getAttribute(Attribute::AttrKind Kind) const { in getAttribute()
741 Attribute AttributeSetNode::getAttribute(StringRef Kind) const { in getAttribute()
750 if (I.hasAttribute(Attribute::Alignment)) in getAlignment()
757 if (I.hasAttribute(Attribute::StackAlignment)) in getStackAlignment()
764 if (I.hasAttribute(Attribute::Dereferenceable)) in getDereferenceableBytes()
771 if (I.hasAttribute(Attribute::DereferenceableOrNull)) in getDereferenceableOrNullBytes()
779 if (I.hasAttribute(Attribute::AllocSize)) in getAllocSizeArgs()
815 static_assert(Attribute::EndAttrKinds <= in AttributeListImpl()
874 ArrayRef<std::pair<unsigned, Attribute>> Attrs) { in get()
880 [](const std::pair<unsigned, Attribute> &LHS, in get()
881 const std::pair<unsigned, Attribute> &RHS) { in get()
885 [](const std::pair<unsigned, Attribute> &Pair) { in get()
886 return Pair.second.hasAttribute(Attribute::None); in get()
893 for (ArrayRef<std::pair<unsigned, Attribute>>::iterator I = Attrs.begin(), in get()
896 SmallVector<Attribute, 4> AttrVec; in get()
992 ArrayRef<Attribute::AttrKind> Kinds) { in get()
993 SmallVector<std::pair<unsigned, Attribute>, 8> Attrs; in get()
995 Attrs.emplace_back(Index, Attribute::get(C, K)); in get()
1001 SmallVector<std::pair<unsigned, Attribute>, 8> Attrs; in get()
1003 Attrs.emplace_back(Index, Attribute::get(C, K)); in get()
1034 Attribute::AttrKind Kind) const { in addAttribute()
1050 Attribute A) const { in addAttribute()
1087 Attribute A) const { in addParamAttribute()
1106 Attribute::AttrKind Kind) const { in removeAttribute()
1203 Attribute::AttrKind Kind) const { in hasAttribute()
1215 bool AttributeList::hasFnAttribute(Attribute::AttrKind Kind) const { in hasFnAttribute()
1224 Attribute::AttrKind Kind) const { in hasParamAttribute()
1228 bool AttributeList::hasAttrSomewhere(Attribute::AttrKind Attr, in hasAttrSomewhere()
1243 Attribute AttributeList::getAttribute(unsigned Index, in getAttribute()
1244 Attribute::AttrKind Kind) const { in getAttribute()
1248 Attribute AttributeList::getAttribute(unsigned Index, StringRef Kind) const { in getAttribute()
1340 AttrBuilder &AttrBuilder::addAttribute(Attribute::AttrKind Val) { in addAttribute()
1341 assert((unsigned)Val < Attribute::EndAttrKinds && "Attribute out of range!"); in addAttribute()
1342 assert(Val != Attribute::Alignment && Val != Attribute::StackAlignment && in addAttribute()
1343 Val != Attribute::Dereferenceable && Val != Attribute::AllocSize && in addAttribute()
1349 AttrBuilder &AttrBuilder::addAttribute(Attribute Attr) { in addAttribute()
1355 Attribute::AttrKind Kind = Attr.getKindAsEnum(); in addAttribute()
1358 if (Kind == Attribute::Alignment) in addAttribute()
1360 else if (Kind == Attribute::StackAlignment) in addAttribute()
1362 else if (Kind == Attribute::Dereferenceable) in addAttribute()
1364 else if (Kind == Attribute::DereferenceableOrNull) in addAttribute()
1366 else if (Kind == Attribute::AllocSize) in addAttribute()
1376 AttrBuilder &AttrBuilder::removeAttribute(Attribute::AttrKind Val) { in removeAttribute()
1377 assert((unsigned)Val < Attribute::EndAttrKinds && "Attribute out of range!"); in removeAttribute()
1380 if (Val == Attribute::Alignment) in removeAttribute()
1382 else if (Val == Attribute::StackAlignment) in removeAttribute()
1384 else if (Val == Attribute::Dereferenceable) in removeAttribute()
1386 else if (Val == Attribute::DereferenceableOrNull) in removeAttribute()
1388 else if (Val == Attribute::AllocSize) in removeAttribute()
1416 Attrs[Attribute::Alignment] = true; in addAlignmentAttr()
1428 Attrs[Attribute::StackAlignment] = true; in addStackAlignmentAttr()
1436 Attrs[Attribute::Dereferenceable] = true; in addDereferenceableAttr()
1445 Attrs[Attribute::DereferenceableOrNull] = true; in addDereferenceableOrNullAttr()
1459 Attrs[Attribute::AllocSize] = true; in addAllocSizeAttrFromRawRepr()
1580 Incompatible.addAttribute(Attribute::SExt) in typeIncompatible()
1581 .addAttribute(Attribute::ZExt); in typeIncompatible()
1585 Incompatible.addAttribute(Attribute::ByVal) in typeIncompatible()
1586 .addAttribute(Attribute::Nest) in typeIncompatible()
1587 .addAttribute(Attribute::NoAlias) in typeIncompatible()
1588 .addAttribute(Attribute::NoCapture) in typeIncompatible()
1589 .addAttribute(Attribute::NonNull) in typeIncompatible()
1592 .addAttribute(Attribute::ReadNone) in typeIncompatible()
1593 .addAttribute(Attribute::ReadOnly) in typeIncompatible()
1594 .addAttribute(Attribute::StructRet) in typeIncompatible()
1595 .addAttribute(Attribute::InAlloca); in typeIncompatible()
1637 OldSSPAttr.addAttribute(Attribute::StackProtect) in adjustCallerSSPLevel()
1638 .addAttribute(Attribute::StackProtectStrong) in adjustCallerSSPLevel()
1639 .addAttribute(Attribute::StackProtectReq); in adjustCallerSSPLevel()
1641 if (Callee.hasFnAttribute(Attribute::StackProtectReq)) { in adjustCallerSSPLevel()
1643 Caller.addFnAttr(Attribute::StackProtectReq); in adjustCallerSSPLevel()
1644 } else if (Callee.hasFnAttribute(Attribute::StackProtectStrong) && in adjustCallerSSPLevel()
1645 !Caller.hasFnAttribute(Attribute::StackProtectReq)) { in adjustCallerSSPLevel()
1647 Caller.addFnAttr(Attribute::StackProtectStrong); in adjustCallerSSPLevel()
1648 } else if (Callee.hasFnAttribute(Attribute::StackProtect) && in adjustCallerSSPLevel()
1649 !Caller.hasFnAttribute(Attribute::StackProtectReq) && in adjustCallerSSPLevel()
1650 !Caller.hasFnAttribute(Attribute::StackProtectStrong)) in adjustCallerSSPLevel()
1651 Caller.addFnAttr(Attribute::StackProtect); in adjustCallerSSPLevel()