Home | History | Annotate | Download | only in IR

Lines Matching defs:Attrs

473                                         ArrayRef<Attribute> Attrs) {
474 if (Attrs.empty())
481 SmallVector<Attribute, 8> SortedAttrs(Attrs.begin(), Attrs.end());
615 ArrayRef<std::pair<unsigned, AttributeSetNode*> > Attrs) {
618 AttributeSetImpl::Profile(ID, Attrs);
628 AttributeSetImpl::totalSizeToAlloc<IndexAttrPair>(Attrs.size()));
629 PA = new (Mem) AttributeSetImpl(C, Attrs);
638 ArrayRef<std::pair<unsigned, Attribute> > Attrs){
640 if (Attrs.empty())
644 for (unsigned i = 0, e = Attrs.size(); i != e; ++i) {
645 assert((!i || Attrs[i-1].first <= Attrs[i].first) &&
647 assert(!Attrs[i].second.hasAttribute(Attribute::None) &&
655 for (ArrayRef<std::pair<unsigned, Attribute> >::iterator I = Attrs.begin(),
656 E = Attrs.end(); I != E; ) {
673 AttributeSetNode*> > Attrs) {
675 if (Attrs.empty())
678 return getImpl(C, Attrs);
687 SmallVector<std::pair<unsigned, Attribute>, 8> Attrs;
712 Attrs.push_back(std::make_pair(Index, Attr));
717 Attrs.push_back(
720 return get(C, Attrs);
725 SmallVector<std::pair<unsigned, Attribute>, 8> Attrs;
727 Attrs.push_back(std::make_pair(Index, Attribute::get(C, K)));
728 return get(C, Attrs);
731 AttributeSet AttributeSet::get(LLVMContext &C, ArrayRef<AttributeSet> Attrs) {
732 if (Attrs.empty()) return AttributeSet();
733 if (Attrs.size() == 1) return Attrs[0];
736 AttributeSetImpl *A0 = Attrs[0].pImpl;
739 // Copy all attributes from Attrs into AttrNodeVec while keeping AttrNodeVec
740 // ordered by index. Because we know that each list in Attrs is ordered by
743 for (unsigned I = 1, E = Attrs.size(); I != E; ++I) {
744 AttributeSetImpl *AS = Attrs[I].pImpl;
812 AttributeSet Attrs) const {
813 if (!pImpl) return Attrs;
814 if (!Attrs.pImpl) return *this;
820 unsigned NewAlign = Attrs.getParamAlignment(Index);
843 for (unsigned I = 0, E = Attrs.pImpl->getNumAttributes(); I != E; ++I)
844 if (Attrs.getSlotIndex(I) == Index) {
845 for (AttributeSetImpl::iterator II = Attrs.pImpl->begin(I),
846 IE = Attrs.pImpl->end(I); II != IE; ++II)
867 AttributeSet Attrs) const {
869 if (!Attrs.pImpl) return *this;
873 assert(!Attrs.hasAttribute(Index, Attribute::Alignment) &&
894 for (unsigned I = 0, E = Attrs.pImpl->getNumAttributes(); I != E; ++I)
895 if (Attrs.getSlotIndex(I) == Index) {
896 B.removeAttributes(Attrs.pImpl->getSlotAttributes(I), Index);
910 const AttrBuilder &Attrs) const {
915 assert(!Attrs.hasAlignmentAttr() && "Attempt to change alignment!");
934 B.remove(Attrs);
1134 : Attrs(0), Alignment(0), StackAlignment(0), DerefBytes(0),
1151 Attrs.reset();
1161 Attrs[Val] = true;
1172 Attrs[Kind] = true;
1192 Attrs[Val] = false;
1242 Attrs[Attribute::Alignment] = true;
1254 Attrs[Attribute::StackAlignment] = true;
1262 Attrs[Attribute::Dereferenceable] = true;
1271 Attrs[Attribute::DereferenceableOrNull] = true;
1290 Attrs |= B.Attrs;
1312 Attrs &= ~B.Attrs;
1322 if ((Attrs & B.Attrs).any())
1338 return !Attrs.none() || !TargetDepAttrs.empty();
1354 if (Attrs[I->getKindAsEnum()])
1370 if (Attrs != B.Attrs)
1393 Attrs[I] = true;