diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/IR/AttributeImpl.h | 1 | ||||
-rw-r--r-- | llvm/lib/IR/Attributes.cpp | 20 |
2 files changed, 6 insertions, 15 deletions
diff --git a/llvm/lib/IR/AttributeImpl.h b/llvm/lib/IR/AttributeImpl.h index 7be5a162f12..af9d4fa285c 100644 --- a/llvm/lib/IR/AttributeImpl.h +++ b/llvm/lib/IR/AttributeImpl.h @@ -46,7 +46,6 @@ public: AttributeImpl(LLVMContext &C, StringRef data); bool hasAttribute(Attribute::AttrKind A) const; - bool hasAttributes() const; Constant *getAttributeKind() const { return Kind; } ArrayRef<Constant*> getAttributeValues() const { return Vals; } diff --git a/llvm/lib/IR/Attributes.cpp b/llvm/lib/IR/Attributes.cpp index 98c12b5d855..2c84a3d13fe 100644 --- a/llvm/lib/IR/Attributes.cpp +++ b/llvm/lib/IR/Attributes.cpp @@ -82,10 +82,6 @@ bool Attribute::hasAttribute(AttrKind Val) const { return pImpl && pImpl->hasAttribute(Val); } -bool Attribute::hasAttributes() const { - return pImpl && pImpl->hasAttributes(); -} - Constant *Attribute::getAttributeKind() const { return pImpl ? pImpl->getAttributeKind() : 0; } @@ -185,7 +181,7 @@ std::string Attribute::getAsString() const { } bool Attribute::operator==(AttrKind K) const { - return pImpl && *pImpl == K; + return (pImpl && *pImpl == K) || (!pImpl && K == None); } bool Attribute::operator!=(AttrKind K) const { return !(*this == K); @@ -226,10 +222,6 @@ bool AttributeImpl::hasAttribute(Attribute::AttrKind A) const { return (Raw() & getAttrMask(A)) != 0; } -bool AttributeImpl::hasAttributes() const { - return Raw() != 0; -} - uint64_t AttributeImpl::getAlignment() const { uint64_t Mask = Raw() & getAttrMask(Attribute::Alignment); return 1ULL << ((Mask >> 16) - 1); @@ -369,7 +361,7 @@ AttributeSetNode *AttributeSetNode::get(LLVMContext &C, bool AttributeSetNode::hasAttribute(Attribute::AttrKind Kind) const { for (SmallVectorImpl<Attribute>::const_iterator I = AttrList.begin(), E = AttrList.end(); I != E; ++I) - if (I->hasAttribute(Kind)) + if (*I == Kind) return true; return false; } @@ -377,7 +369,7 @@ bool AttributeSetNode::hasAttribute(Attribute::AttrKind Kind) const { unsigned AttributeSetNode::getAlignment() const { for (SmallVectorImpl<Attribute>::const_iterator I = AttrList.begin(), E = AttrList.end(); I != E; ++I) - if (I->hasAttribute(Attribute::Alignment)) + if (*I == Attribute::Alignment) return I->getAlignment(); return 0; } @@ -385,7 +377,7 @@ unsigned AttributeSetNode::getAlignment() const { unsigned AttributeSetNode::getStackAlignment() const { for (SmallVectorImpl<Attribute>::const_iterator I = AttrList.begin(), E = AttrList.end(); I != E; ++I) - if (I->hasAttribute(Attribute::StackAlignment)) + if (*I == Attribute::StackAlignment) return I->getStackAlignment(); return 0; } @@ -454,7 +446,7 @@ AttributeSet AttributeSet::get(LLVMContext &C, for (unsigned i = 0, e = Attrs.size(); i != e; ++i) { assert((!i || Attrs[i-1].first <= Attrs[i].first) && "Misordered Attributes list!"); - assert(Attrs[i].second.hasAttributes() && + assert(Attrs[i].second != Attribute::None && "Pointless attribute!"); } #endif @@ -682,7 +674,7 @@ bool AttributeSet::hasAttrSomewhere(Attribute::AttrKind Attr) const { for (unsigned I = 0, E = pImpl->getNumAttributes(); I != E; ++I) for (AttributeSetImpl::const_iterator II = pImpl->begin(I), IE = pImpl->end(I); II != IE; ++II) - if (II->hasAttribute(Attr)) + if (*II == Attr) return true; return false; |