aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-01-03 01:43:05 +0000
committerBill Wendling <isanbard@gmail.com>2013-01-03 01:43:05 +0000
commit8351a60d6da4f5cdab80753ad2266085a6fbf62a (patch)
tree18d3e593b6ba11a3830a5b466647d0c0fc708e10
parent3ac03815e195a598fce50abdda440c9d2fae815e (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.h6
-rw-r--r--lib/IR/AttributeImpl.h19
-rw-r--r--lib/IR/Attributes.cpp20
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.