From a8ab5fc772e1eaaa1066d1c9c4135ac875d79365 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Wed, 23 Jan 2013 23:00:05 +0000 Subject: [PATCH] Push down the conversion of the alignment from the bit mask to a real number into the attribute implementation class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173304 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/IR/Attributes.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/IR/Attributes.cpp b/lib/IR/Attributes.cpp index 37cd3fbb911..94615da6d05 100644 --- a/lib/IR/Attributes.cpp +++ b/lib/IR/Attributes.cpp @@ -73,7 +73,7 @@ bool Attribute::hasAttributes() const { unsigned Attribute::getAlignment() const { if (!hasAttribute(Attribute::Alignment)) return 0; - return 1U << ((pImpl->getAlignment() >> 16) - 1); + return pImpl->getAlignment(); } /// This returns the stack alignment field of an attribute as a byte alignment @@ -81,7 +81,7 @@ unsigned Attribute::getAlignment() const { unsigned Attribute::getStackAlignment() const { if (!hasAttribute(Attribute::StackAlignment)) return 0; - return 1U << ((pImpl->getStackAlignment() >> 26) - 1); + return pImpl->getStackAlignment(); } bool Attribute::operator==(AttrKind K) const { @@ -491,11 +491,13 @@ bool AttributeImpl::hasAttributes() const { } uint64_t AttributeImpl::getAlignment() const { - return Raw() & getAttrMask(Attribute::Alignment); + uint64_t Mask = Raw() & getAttrMask(Attribute::Alignment); + return 1U << ((Mask >> 16) - 1); } uint64_t AttributeImpl::getStackAlignment() const { - return Raw() & getAttrMask(Attribute::StackAlignment); + uint64_t Mask = Raw() & getAttrMask(Attribute::StackAlignment); + return 1U << ((Mask >> 26) - 1); } void AttributeImpl::Profile(FoldingSetNodeID &ID, Constant *Data, -- 2.34.1