Lines Matching defs:Attrs

918 AttributeSet AttributeSet::get(LLVMContext &C, ArrayRef<Attribute> Attrs) {
919 return AttributeSet(AttributeSetNode::get(C, Attrs));
967 const AttributeMask &Attrs) const {
970 if (!B.overlaps(Attrs))
973 B.remove(Attrs);
1234 AttributeSetNode::AttributeSetNode(ArrayRef<Attribute> Attrs)
1235 : NumAttrs(Attrs.size()) {
1237 llvm::copy(Attrs, getTrailingObjects<Attribute>());
1248 ArrayRef<Attribute> Attrs) {
1249 SmallVector<Attribute, 8> SortedAttrs(Attrs);
1504 ArrayRef<std::pair<unsigned, Attribute>> Attrs) {
1506 if (Attrs.empty())
1509 assert(llvm::is_sorted(Attrs, llvm::less_first()) &&
1511 assert(llvm::all_of(Attrs,
1520 for (ArrayRef<std::pair<unsigned, Attribute>>::iterator I = Attrs.begin(),
1521 E = Attrs.end(); I != E; ) {
1537 ArrayRef<std::pair<unsigned, AttributeSet>> Attrs) {
1539 if (Attrs.empty())
1542 assert(llvm::is_sorted(Attrs, llvm::less_first()) &&
1544 assert(llvm::none_of(Attrs,
1550 unsigned MaxIndex = Attrs.back().first;
1553 if (MaxIndex == FunctionIndex && Attrs.size() > 1)
1554 MaxIndex = Attrs[Attrs.size() - 2].first;
1557 for (const auto &Pair : Attrs)
1605 AttributeSet Attrs) {
1606 if (!Attrs.hasAttributes())
1610 AttrSets[Index] = Attrs;
1621 SmallVector<std::pair<unsigned, Attribute>, 8> Attrs;
1623 Attrs.emplace_back(Index, Attribute::get(C, K));
1624 return get(C, Attrs);
1631 SmallVector<std::pair<unsigned, Attribute>, 8> Attrs;
1634 Attrs.emplace_back(Index, Attribute::get(C, K, *VI++));
1635 return get(C, Attrs);
1640 SmallVector<std::pair<unsigned, Attribute>, 8> Attrs;
1642 Attrs.emplace_back(Index, Attribute::get(C, K));
1643 return get(C, Attrs);
1647 ArrayRef<AttributeList> Attrs) {
1648 if (Attrs.empty())
1650 if (Attrs.size() == 1)
1651 return Attrs[0];
1654 for (const auto &List : Attrs)
1664 for (const auto &List : Attrs)
1675 AttributeSet Attrs = getAttributes(Index);
1676 if (Attrs.hasAttribute(Kind))
1679 SmallVector<Attribute, 8> NewAttrs(Attrs.begin(), Attrs.end());
1701 AttributeSet Attrs) const {
1706 AttrSets[Index] = Attrs;
1753 AttributeSet Attrs = getAttributes(Index);
1754 AttributeSet NewAttrs = Attrs.removeAttribute(C, Kind);
1755 if (Attrs == NewAttrs)
1763 AttributeSet Attrs = getAttributes(Index);
1764 AttributeSet NewAttrs = Attrs.removeAttribute(C, Kind);
1765 if (Attrs == NewAttrs)
1772 AttributeSet Attrs = getAttributes(Index);
1773 AttributeSet NewAttrs = Attrs.removeAttributes(C, AttrsToRemove);
1775 if (Attrs == NewAttrs)
2060 append_range(Attrs, AS);
2061 assert(is_sorted(Attrs) && "AttributeSet should be sorted");
2064 void AttrBuilder::clear() { Attrs.clear(); }
2095 static void addAttributeImpl(SmallVectorImpl<Attribute> &Attrs, K Kind,
2097 auto It = lower_bound(Attrs, Kind, AttributeComparator());
2098 if (It != Attrs.end() && It->hasAttribute(Kind))
2101 Attrs.insert(It, Attr);
2106 addAttributeImpl(Attrs, Attr.getKindAsString(), Attr);
2108 addAttributeImpl(Attrs, Attr.getKindAsEnum(), Attr);
2113 addAttributeImpl(Attrs, Kind, Attribute::get(Ctx, Kind));
2118 addAttributeImpl(Attrs, A, Attribute::get(Ctx, A, V));
2124 auto It = lower_bound(Attrs, Val, AttributeComparator());
2125 if (It != Attrs.end() && It->hasAttribute(Val))
2126 Attrs.erase(It);
2131 auto It = lower_bound(Attrs, A, AttributeComparator());
2132 if (It != Attrs.end() && It->hasAttribute(A))
2133 Attrs.erase(It);
2300 erase_if(Attrs, [&](Attribute A) { return AM.contains(A); });
2305 return any_of(Attrs, [&](Attribute A) { return AM.contains(A); });
2310 auto It = lower_bound(Attrs, A, AttributeComparator());
2311 if (It != Attrs.end() && It->hasAttribute(A))
2317 auto It = lower_bound(Attrs, A, AttributeComparator());
2318 if (It != Attrs.end() && It->hasAttribute(A))
2339 return Attrs == B.Attrs;