summaryrefslogtreecommitdiffstats
path: root/llvm/include/llvm/Attributes.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/include/llvm/Attributes.h')
-rw-r--r--llvm/include/llvm/Attributes.h37
1 files changed, 19 insertions, 18 deletions
diff --git a/llvm/include/llvm/Attributes.h b/llvm/include/llvm/Attributes.h
index 01b3be8cb60..6b3d122f5ef 100644
--- a/llvm/include/llvm/Attributes.h
+++ b/llvm/include/llvm/Attributes.h
@@ -205,6 +205,24 @@ public:
return Bits & Attribute::StackAlignment_i;
}
+ /// This returns the alignment field of an attribute as a byte alignment
+ /// value.
+ unsigned getAlignment() const {
+ if (!hasAlignmentAttr())
+ return 0;
+
+ return 1U << ((getRawAlignment() >> 16) - 1);
+ }
+
+ /// This returns the stack alignment field of an attribute as a byte alignment
+ /// value.
+ unsigned getStackAlignment() const {
+ if (!hasStackAlignmentAttr())
+ return 0;
+
+ return 1U << ((getRawStackAlignment() >> 26) - 1);
+ }
+
// This is a "safe bool() operator".
operator const void *() const { return Bits ? this : 0; }
bool isEmptyOrSingleton() const { return (Bits & (Bits - 1)) == 0; }
@@ -294,14 +312,6 @@ inline Attributes constructAlignmentFromInt(unsigned i) {
return Attributes((Log2_32(i)+1) << 16);
}
-/// This returns the alignment field of an attribute as a byte alignment value.
-inline unsigned getAlignmentFromAttrs(Attributes A) {
- if (!A.hasAlignmentAttr())
- return 0;
-
- return 1U << ((A.getRawAlignment() >> 16) - 1);
-}
-
/// This turns an int stack alignment (which must be a power of 2) into
/// the form used internally in Attributes.
inline Attributes constructStackAlignmentFromInt(unsigned i) {
@@ -314,15 +324,6 @@ inline Attributes constructStackAlignmentFromInt(unsigned i) {
return Attributes((Log2_32(i)+1) << 26);
}
-/// This returns the stack alignment field of an attribute as a byte alignment
-/// value.
-inline unsigned getStackAlignmentFromAttrs(Attributes A) {
- if (!A.hasStackAlignmentAttr())
- return 0;
-
- return 1U << ((A.getRawStackAlignment() >> 26) - 1);
-}
-
/// This returns an integer containing an encoding of all the
/// LLVM attributes found in the given attribute bitset. Any
/// change to this encoding is a breaking change to bitcode
@@ -450,7 +451,7 @@ public:
/// getParamAlignment - Return the alignment for the specified function
/// parameter.
unsigned getParamAlignment(unsigned Idx) const {
- return Attribute::getAlignmentFromAttrs(getAttributes(Idx));
+ return getAttributes(Idx).getAlignment();
}
/// hasAttrSomewhere - Return true if the specified attribute is set for at
OpenPOWER on IntegriCloud