diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm-c/Core.h | 2 | ||||
-rw-r--r-- | include/llvm/Attributes.h | 25 |
2 files changed, 10 insertions, 17 deletions
diff --git a/include/llvm-c/Core.h b/include/llvm-c/Core.h index 8cf03c2..badc70b 100644 --- a/include/llvm-c/Core.h +++ b/include/llvm-c/Core.h @@ -1803,7 +1803,7 @@ LLVMAttribute LLVMGetAttribute(LLVMValueRef Arg); * Set the alignment for a function parameter. * * @see llvm::Argument::addAttr() - * @see llvm::Attributes::constructAlignmentFromInt() + * @see llvm::Attributes::Builder::addAlignmentAttr() */ void LLVMSetParamAlignment(LLVMValueRef Arg, unsigned align); diff --git a/include/llvm/Attributes.h b/include/llvm/Attributes.h index c757951..eb1798f 100644 --- a/include/llvm/Attributes.h +++ b/include/llvm/Attributes.h @@ -118,11 +118,13 @@ public: Builder &addAttribute(Attributes::AttrVal Val); Builder &removeAttribute(Attributes::AttrVal Val); - void addAlignmentAttr(unsigned Align); + /// addAlignmentAttr - This turns an int alignment (which must be a power of + /// 2) into the form used internally in Attributes. + Builder &addAlignmentAttr(unsigned Align); /// addStackAlignmentAttr - This turns an int stack alignment (which must be /// a power of 2) into the form used internally in Attributes. - void addStackAlignmentAttr(unsigned Align); + Builder &addStackAlignmentAttr(unsigned Align); void removeAttributes(const Attributes &A); @@ -229,18 +231,6 @@ public: uint64_t Raw() const; - /// constructAlignmentFromInt - This turns an int alignment (a power of 2, - /// normally) into the form used internally in Attributes. - static Attributes constructAlignmentFromInt(unsigned i) { - // Default alignment, allow the target to define how to align it. - if (i == 0) - return Attributes(); - - assert(isPowerOf2_32(i) && "Alignment must be a power of two."); - assert(i <= 0x40000000 && "Alignment too large."); - return Attributes((Log2_32(i)+1) << 16); - } - /// @brief Which attributes cannot be applied to a type. static Attributes typeIncompatible(Type *Ty); @@ -277,8 +267,11 @@ public: "Alignment must be a power of two."); Attributes Attrs(EncodedAttrs & 0xffff); - if (Alignment) - Attrs |= Attributes::constructAlignmentFromInt(Alignment); + if (Alignment) { + Attributes::Builder B; + B.addAlignmentAttr(Alignment); + Attrs |= Attributes::get(B); + } Attrs |= Attributes((EncodedAttrs & (0xfffULL << 32)) >> 11); return Attrs; } |