From aa9022eef7bc6128911d18bc4e0ec6c7bec8f5cb Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Thu, 3 Jan 2013 01:43:05 +0000 Subject: [PATCH] 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. llvm-svn: 171442 --- include/llvm/IR/Attributes.h | 6 +++--- lib/IR/AttributeImpl.h | 19 ++++--------------- 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 c28f0bd0907..bf0b67a5774 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 2633608926f..015bb9df3e6 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 a7fba3ff47f..fb99c855343 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(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(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.