Home | History | Annotate | Download | only in IR

Lines Matching refs:Attrs

410                                         ArrayRef<Attribute> Attrs) {
411 if (Attrs.empty())
418 SmallVector<Attribute, 8> SortedAttrs(Attrs.begin(), Attrs.end());
538 ArrayRef<std::pair<unsigned, AttributeSetNode*> > Attrs) {
541 AttributeSetImpl::Profile(ID, Attrs);
552 Attrs.size());
553 PA = new (Mem) AttributeSetImpl(C, Attrs);
562 ArrayRef<std::pair<unsigned, Attribute> > Attrs){
564 if (Attrs.empty())
568 for (unsigned i = 0, e = Attrs.size(); i != e; ++i) {
569 assert((!i || Attrs[i-1].first <= Attrs[i].first) &&
571 assert(!Attrs[i].second.hasAttribute(Attribute::None) &&
579 for (ArrayRef<std::pair<unsigned, Attribute> >::iterator I = Attrs.begin(),
580 E = Attrs.end(); I != E; ) {
597 AttributeSetNode*> > Attrs) {
599 if (Attrs.empty())
602 return getImpl(C, Attrs);
611 SmallVector<std::pair<unsigned, Attribute>, 8> Attrs;
618 Attrs.push_back(std::make_pair(Index, Attribute::
621 Attrs.push_back(std::make_pair(Index, Attribute::
624 Attrs.push_back(std::make_pair(Index, Attribute::get(C, Kind)));
629 Attrs.push_back(
632 return get(C, Attrs);
637 SmallVector<std::pair<unsigned, Attribute>, 8> Attrs;
640 Attrs.push_back(std::make_pair(Index, Attribute::get(C, *I)));
641 return get(C, Attrs);
644 AttributeSet AttributeSet::get(LLVMContext &C, ArrayRef<AttributeSet> Attrs) {
645 if (Attrs.empty()) return AttributeSet();
646 if (Attrs.size() == 1) return Attrs[0];
649 AttributeSetImpl *A0 = Attrs[0].pImpl;
652 // Copy all attributes from Attrs into AttrNodeVec while keeping AttrNodeVec
653 // ordered by index. Because we know that each list in Attrs is ordered by
656 for (unsigned I = 1, E = Attrs.size(); I != E; ++I) {
657 AttributeSetImpl *AS = Attrs[I].pImpl;
696 AttributeSet Attrs) const {
697 if (!pImpl) return Attrs;
698 if (!Attrs.pImpl) return *this;
704 unsigned NewAlign = Attrs.getParamAlignment(Index);
727 for (unsigned I = 0, E = Attrs.pImpl->getNumAttributes(); I != E; ++I)
728 if (Attrs.getSlotIndex(I) == Index) {
729 for (AttributeSetImpl::iterator II = Attrs.pImpl->begin(I),
730 IE = Attrs.pImpl->end(I); II != IE; ++II)
751 AttributeSet Attrs) const {
753 if (!Attrs.pImpl) return *this;
758 assert(!Attrs.hasAttribute(Index, Attribute::Alignment) &&
780 for (unsigned I = 0, E = Attrs.pImpl->getNumAttributes(); I != E; ++I)
781 if (Attrs.getSlotIndex(I) == Index) {
782 B.removeAttributes(Attrs.pImpl->getSlotAttributes(I), Index);
959 : Attrs(0), Alignment(0), StackAlignment(0) {
975 Attrs.reset();
983 Attrs[Val] = true;
994 Attrs[Kind] = true;
1010 Attrs[Val] = false;
1034 Attrs[Kind] = false;
1065 Attrs[Attribute::Alignment] = true;
1077 Attrs[Attribute::StackAlignment] = true;
1090 Attrs |= B.Attrs;
1104 return !Attrs.none() || !TargetDepAttrs.empty();
1121 if (Attrs[I->getKindAsEnum()])
1137 if (Attrs != B.Attrs)
1155 Attrs[I] = true;