Push down the conversion of the alignment from the bit mask to a real number into...
authorBill Wendling <isanbard@gmail.com>
Wed, 23 Jan 2013 23:00:05 +0000 (23:00 +0000)
committerBill Wendling <isanbard@gmail.com>
Wed, 23 Jan 2013 23:00:05 +0000 (23:00 +0000)
llvm-svn: 173304

llvm/lib/IR/Attributes.cpp

index 37cd3fb..94615da 100644 (file)
@@ -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,