diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-01-03 01:43:05 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-01-03 01:43:05 +0000 |
commit | 8351a60d6da4f5cdab80753ad2266085a6fbf62a (patch) | |
tree | 18d3e593b6ba11a3830a5b466647d0c0fc708e10 | |
parent | 3ac03815e195a598fce50abdda440c9d2fae815e (diff) |
Remove the 'contains' methods in favor of the 'operator==' method.
The 'operator==' method is a bit clearer and much less verbose for somethings
that should have only one value. Remove from the AttrBuilder for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171442 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/IR/Attributes.h | 6 | ||||
-rw-r--r-- | lib/IR/AttributeImpl.h | 19 | ||||
-rw-r--r-- | lib/IR/Attributes.cpp | 20 |
3 files changed, 22 insertions, 23 deletions
diff --git a/include/llvm/IR/Attributes.h b/include/llvm/IR/Attributes.h index c28f0bd090..bf0b67a577 100644 --- a/include/llvm/IR/Attributes.h +++ b/include/llvm/IR/Attributes.h @@ -179,9 +179,6 @@ public: /// removeAttribute - Remove the attributes from A from the builder. AttrBuilder &removeAttributes(const Attribute &A); - /// \brief Return true if the builder has the specified attribute. - bool contains(Attribute::AttrKind A) const; - /// hasAttributes - Return true if the builder has IR-level attributes. bool hasAttributes() const; @@ -242,6 +239,9 @@ public: bool operator!=(const AttrBuilder &B) { return Bits != B.Bits; } + + bool operator==(Attribute::AttrKind A) const; + bool operator!=(Attribute::AttrKind A) const; }; //===----------------------------------------------------------------------===// diff --git a/lib/IR/AttributeImpl.h b/lib/IR/AttributeImpl.h index 2633608926..015bb9df3e 100644 --- a/lib/IR/AttributeImpl.h +++ b/lib/IR/AttributeImpl.h @@ -42,9 +42,6 @@ public: return Vals; } - bool contains(Attribute::AttrKind Kind) const; - bool contains(StringRef Kind) const; - bool hasAttribute(Attribute::AttrKind A) const; bool hasAttributes() const; @@ -53,19 +50,11 @@ public: uint64_t getAlignment() const; uint64_t getStackAlignment() const; - bool operator==(Attribute::AttrKind Kind) const { - return contains(Kind); - } - bool operator!=(Attribute::AttrKind Kind) const { - return !contains(Kind); - } + bool operator==(Attribute::AttrKind Kind) const; + bool operator!=(Attribute::AttrKind Kind) const; - bool operator==(StringRef Kind) const { - return contains(Kind); - } - bool operator!=(StringRef Kind) const { - return !contains(Kind); - } + bool operator==(StringRef Kind) const; + bool operator!=(StringRef Kind) const; uint64_t getBitMask() const; // FIXME: Remove. diff --git a/lib/IR/Attributes.cpp b/lib/IR/Attributes.cpp index a7fba3ff47..fb99c85534 100644 --- a/lib/IR/Attributes.cpp +++ b/lib/IR/Attributes.cpp @@ -89,11 +89,11 @@ unsigned Attribute::getStackAlignment() const { } bool Attribute::operator==(AttrKind K) const { - return pImpl && pImpl->contains(K); + return pImpl && *pImpl == K; } bool Attribute::operator!=(AttrKind K) const { - return !(pImpl && pImpl->contains(K)); + return !(pImpl && *pImpl == K); } uint64_t Attribute::getBitMask() const { @@ -274,10 +274,14 @@ AttrBuilder &AttrBuilder::removeAttributes(const Attribute &A){ return *this; } -bool AttrBuilder::contains(Attribute::AttrKind A) const { +bool AttrBuilder::operator==(Attribute::AttrKind A) const { return Bits & AttributeImpl::getAttrMask(A); } +bool AttrBuilder::operator!=(Attribute::AttrKind A) const { + return !(*this == A); +} + bool AttrBuilder::hasAttributes() const { return Bits != 0; } @@ -322,18 +326,24 @@ AttributeImpl::AttributeImpl(LLVMContext &C, StringRef data) { Data = ConstantDataArray::getString(C, data); } -bool AttributeImpl::contains(Attribute::AttrKind Kind) const { +bool AttributeImpl::operator==(Attribute::AttrKind Kind) const { if (ConstantInt *CI = dyn_cast<ConstantInt>(Data)) return CI->getZExtValue() == Kind; return false; } +bool AttributeImpl::operator!=(Attribute::AttrKind Kind) const { + return !(*this == Kind); +} -bool AttributeImpl::contains(StringRef Kind) const { +bool AttributeImpl::operator==(StringRef Kind) const { if (ConstantDataArray *CDA = dyn_cast<ConstantDataArray>(Data)) if (CDA->isString()) return CDA->getAsString() == Kind; return false; } +bool AttributeImpl::operator!=(StringRef Kind) const { + return !(*this == Kind); +} uint64_t AttributeImpl::getBitMask() const { // FIXME: Remove this. |