OSDN Git Service

Remove the 'contains' methods in favor of the 'operator==' method.
authorBill Wendling <isanbard@gmail.com>
Thu, 3 Jan 2013 01:43:05 +0000 (01:43 +0000)
committerBill Wendling <isanbard@gmail.com>
Thu, 3 Jan 2013 01:43:05 +0000 (01:43 +0000)
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

include/llvm/IR/Attributes.h
lib/IR/AttributeImpl.h
lib/IR/Attributes.cpp

index c28f0bd..bf0b67a 100644 (file)
@@ -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;
 };
 
 //===----------------------------------------------------------------------===//
index 2633608..015bb9d 100644 (file)
@@ -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.
 
index a7fba3f..fb99c85 100644 (file)
@@ -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.