Home | History | Annotate | Download | only in VMCore

Lines Matching refs:Attrs

29 std::string Attribute::getAsString(Attributes Attrs) {
31 if (Attrs & Attribute::ZExt)
33 if (Attrs & Attribute::SExt)
35 if (Attrs & Attribute::NoReturn)
37 if (Attrs & Attribute::NoUnwind)
39 if (Attrs & Attribute::UWTable)
41 if (Attrs & Attribute::ReturnsTwice)
43 if (Attrs & Attribute::InReg)
45 if (Attrs & Attribute::NoAlias)
47 if (Attrs & Attribute::NoCapture)
49 if (Attrs & Attribute::StructRet)
51 if (Attrs & Attribute::ByVal)
53 if (Attrs & Attribute::Nest)
55 if (Attrs & Attribute::ReadNone)
57 if (Attrs & Attribute::ReadOnly)
59 if (Attrs & Attribute::OptimizeForSize)
61 if (Attrs & Attribute::NoInline)
63 if (Attrs & Attribute::InlineHint)
65 if (Attrs & Attribute::AlwaysInline)
67 if (Attrs & Attribute::StackProtect)
69 if (Attrs & Attribute::StackProtectReq)
71 if (Attrs & Attribute::NoRedZone)
73 if (Attrs & Attribute::NoImplicitFloat)
75 if (Attrs & Attribute::Naked)
77 if (Attrs & Attribute::NonLazyBind)
79 if (Attrs & Attribute::StackAlignment) {
81 Result += utostr(Attribute::getStackAlignmentFromAttrs(Attrs));
84 if (Attrs & Attribute::Alignment) {
86 Result += utostr(Attribute::getAlignmentFromAttrs(Attrs));
130 SmallVector<AttributeWithIndex, 4> Attrs;
133 : Attrs(Attr, Attr+NumAttrs) {
151 Profile(ID, Attrs.data(), Attrs.size());
156 ID.AddInteger(uint64_t(Attr[i].Attrs) << 32 | unsigned(Attr[i].Index));
167 AttrListPtr AttrListPtr::get(const AttributeWithIndex *Attrs, unsigned NumAttrs) {
174 assert(Attrs[i].Attrs != Attribute::None &&
176 assert((!i || Attrs[i-1].Index < Attrs[i].Index) &&
183 AttributeListImpl::Profile(ID, Attrs, NumAttrs);
194 PAL = new AttributeListImpl(Attrs, NumAttrs);
232 return AttrList ? AttrList->Attrs.size() : 0;
238 assert(AttrList && Slot < AttrList->Attrs.size() && "Slot # out of range!");
239 return AttrList->Attrs[Slot];
249 const SmallVector<AttributeWithIndex, 4> &Attrs = AttrList->Attrs;
250 for (unsigned i = 0, e = Attrs.size(); i != e && Attrs[i].Index <= Idx; ++i)
251 if (Attrs[i].Index == Idx)
252 return Attrs[i].Attrs;
261 const SmallVector<AttributeWithIndex, 4> &Attrs = AttrList->Attrs;
262 for (unsigned i = 0, e = Attrs.size(); i != e; ++i)
263 if (Attrs[i].Attrs & Attr)
269 AttrListPtr AttrListPtr::addAttr(unsigned Idx, Attributes Attrs) const {
275 Attributes NewAlign = Attrs & Attribute::Alignment;
280 Attributes NewAttrs = OldAttrs | Attrs;
286 NewAttrList.push_back(AttributeWithIndex::get(Idx, Attrs));
288 const SmallVector<AttributeWithIndex, 4> &OldAttrList = AttrList->Attrs;
296 Attrs |= OldAttrList[i].Attrs;
300 NewAttrList.push_back(AttributeWithIndex::get(Idx, Attrs));
310 AttrListPtr AttrListPtr::removeAttr(unsigned Idx, Attributes Attrs) const {
314 assert(!(Attrs & Attribute::Alignment) && "Attempt to exclude alignment!");
319 Attributes NewAttrs = OldAttrs & ~Attrs;
324 const SmallVector<AttributeWithIndex, 4> &OldAttrList = AttrList->Attrs;
333 Attrs = OldAttrList[i].Attrs & ~Attrs;
335 if (Attrs) // If any attributes left for this parameter, add them.
336 NewAttrList.push_back(AttributeWithIndex::get(Idx, Attrs));
349 dbgs() << "{" << PAWI.Index << "," << PAWI.Attrs << "} ";