summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Attributes.cpp
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2012-10-09 00:01:21 +0000
committerBill Wendling <isanbard@gmail.com>2012-10-09 00:01:21 +0000
commit70f3917b0e7bcf50225194ff1a51de84b701bc1e (patch)
treeec08ab7626539a1257a9ea0a4628fca28ec3ca11 /llvm/lib/VMCore/Attributes.cpp
parentb0d9dec1ff7a888dceeb3ae28c9a8f23676ead18 (diff)
downloadbcm5719-llvm-70f3917b0e7bcf50225194ff1a51de84b701bc1e.tar.gz
bcm5719-llvm-70f3917b0e7bcf50225194ff1a51de84b701bc1e.zip
Convert to using the Attributes::Builder interface.
llvm-svn: 165465
Diffstat (limited to 'llvm/lib/VMCore/Attributes.cpp')
-rw-r--r--llvm/lib/VMCore/Attributes.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/VMCore/Attributes.cpp b/llvm/lib/VMCore/Attributes.cpp
index 6905e4df39c..6f5eefae0d2 100644
--- a/llvm/lib/VMCore/Attributes.cpp
+++ b/llvm/lib/VMCore/Attributes.cpp
@@ -377,6 +377,10 @@ void Attributes::Builder::addStackAlignmentAttr(unsigned Align) {
Bits |= (Log2_32(Align) + 1) << 26;
}
+void Attributes::Builder::removeAttributes(const Attributes &A) {
+ Bits &= ~A.Raw();
+}
+
void Attributes::Builder::removeAddressSafetyAttr() {
Bits &= ~Attribute::AddressSafety_i;
}
@@ -463,6 +467,9 @@ void Attributes::Builder::removeStackAlignmentAttr() {
bool Attributes::Builder::hasAttributes() const {
return Bits != 0;
}
+bool Attributes::Builder::hasAttributes(const Attributes &A) const {
+ return Bits & A.Raw();
+}
bool Attributes::Builder::hasAlignmentAttr() const {
return Bits & Attribute::Alignment_i;
}
@@ -662,6 +669,15 @@ bool AttrListPtr::hasAttrSomewhere(Attributes Attr) const {
return false;
}
+unsigned AttrListPtr::getNumAttrs() const {
+ return AttrList ? AttrList->Attrs.size() : 0;
+}
+
+Attributes &AttrListPtr::getAttributesAtIndex(unsigned i) const {
+ assert(AttrList && "Trying to get an attribute from an empty list!");
+ assert(i < AttrList->Attrs.size() && "Index out of range!");
+ return AttrList->Attrs[i].Attrs;
+}
AttrListPtr AttrListPtr::addAttr(unsigned Idx, Attributes Attrs) const {
Attributes OldAttrs = getAttributes(Idx);
OpenPOWER on IntegriCloud