diff options
author | Bill Wendling <isanbard@gmail.com> | 2012-10-14 03:58:29 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2012-10-14 03:58:29 +0000 |
commit | da3f9d8edc5b3e0a3e0b94257c63e24215a85653 (patch) | |
tree | 876493920590f19f28baa2b43023c0dda88afe3b | |
parent | db55fc9dd8f6ede9b5337ba1f1d7cf0adfb1cc1a (diff) | |
download | external_llvm-da3f9d8edc5b3e0a3e0b94257c63e24215a85653.zip external_llvm-da3f9d8edc5b3e0a3e0b94257c63e24215a85653.tar.gz external_llvm-da3f9d8edc5b3e0a3e0b94257c63e24215a85653.tar.bz2 |
Use builder to create alignment attributes. Remove dead function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165890 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm-c/Core.h | 2 | ||||
-rw-r--r-- | include/llvm/Attributes.h | 25 | ||||
-rw-r--r-- | lib/VMCore/Attributes.cpp | 10 | ||||
-rw-r--r-- | lib/VMCore/Core.cpp | 11 |
4 files changed, 22 insertions, 26 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; } diff --git a/lib/VMCore/Attributes.cpp b/lib/VMCore/Attributes.cpp index 16c5466..5f4b51f 100644 --- a/lib/VMCore/Attributes.cpp +++ b/lib/VMCore/Attributes.cpp @@ -215,18 +215,20 @@ addAttribute(Attributes::AttrVal Val) { return *this; } -void Attributes::Builder::addAlignmentAttr(unsigned Align) { - if (Align == 0) return; +Attributes::Builder &Attributes::Builder::addAlignmentAttr(unsigned Align) { + if (Align == 0) return *this; assert(isPowerOf2_32(Align) && "Alignment must be a power of two."); assert(Align <= 0x40000000 && "Alignment too large."); Bits |= (Log2_32(Align) + 1) << 16; + return *this; } -void Attributes::Builder::addStackAlignmentAttr(unsigned Align) { +Attributes::Builder &Attributes::Builder::addStackAlignmentAttr(unsigned Align){ // Default alignment, allow the target to define how to align it. - if (Align == 0) return; + if (Align == 0) return *this; assert(isPowerOf2_32(Align) && "Alignment must be a power of two."); assert(Align <= 0x100 && "Alignment too large."); Bits |= (Log2_32(Align) + 1) << 26; + return *this; } Attributes::Builder &Attributes::Builder:: diff --git a/lib/VMCore/Core.cpp b/lib/VMCore/Core.cpp index 90ecdae..7973325 100644 --- a/lib/VMCore/Core.cpp +++ b/lib/VMCore/Core.cpp @@ -1474,8 +1474,9 @@ LLVMAttribute LLVMGetAttribute(LLVMValueRef Arg) { void LLVMSetParamAlignment(LLVMValueRef Arg, unsigned align) { - unwrap<Argument>(Arg)->addAttr( - Attributes::constructAlignmentFromInt(align)); + Attributes::Builder B; + B.addAlignmentAttr(align); + unwrap<Argument>(Arg)->addAttr(Attributes::get(B)); } /*--.. Operations on basic blocks ..........................................--*/ @@ -1678,9 +1679,9 @@ void LLVMRemoveInstrAttribute(LLVMValueRef Instr, unsigned index, void LLVMSetInstrParamAlignment(LLVMValueRef Instr, unsigned index, unsigned align) { CallSite Call = CallSite(unwrap<Instruction>(Instr)); - Call.setAttributes( - Call.getAttributes().addAttr(index, - Attributes::constructAlignmentFromInt(align))); + Attributes::Builder B; + B.addAlignmentAttr(align); + Call.setAttributes(Call.getAttributes().addAttr(index, Attributes::get(B))); } /*--.. Operations on call instructions (only) ..............................--*/ |