diff options
author | void <void@91177308-0d34-0410-b5e6-96231b3b80d8> | 2012-09-21 15:26:31 +0000 |
---|---|---|
committer | void <void@91177308-0d34-0410-b5e6-96231b3b80d8> | 2012-09-21 15:26:31 +0000 |
commit | fde8146579c695a1aae0e5c047fecc8e702a1e5c (patch) | |
tree | 7104eabbeced03fe034edf2f391d04e63227e8fd /include | |
parent | 839637d7e9fd7b7586322f05c6a5bc713fda3e8e (diff) |
Make the 'get*AlignmentFromAttr' functions into member functions within the Attributes class. Now with fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164370 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Attributes.h | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/include/llvm/Attributes.h b/include/llvm/Attributes.h index 01b3be8cb6..6b3d122f5e 100644 --- a/include/llvm/Attributes.h +++ b/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 |