From abd5ba2523ff95300c11143e9791dcaedead4467 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Sun, 14 Oct 2012 03:58:29 +0000 Subject: [PATCH] Use builder to create alignment attributes. Remove dead function. llvm-svn: 165890 --- llvm/include/llvm-c/Core.h | 2 +- llvm/include/llvm/Attributes.h | 25 +++++++++---------------- llvm/lib/VMCore/Attributes.cpp | 10 ++++++---- llvm/lib/VMCore/Core.cpp | 11 ++++++----- 4 files changed, 22 insertions(+), 26 deletions(-) diff --git a/llvm/include/llvm-c/Core.h b/llvm/include/llvm-c/Core.h index 8cf03c2..badc70b 100644 --- a/llvm/include/llvm-c/Core.h +++ b/llvm/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/llvm/include/llvm/Attributes.h b/llvm/include/llvm/Attributes.h index c757951..eb1798f 100644 --- a/llvm/include/llvm/Attributes.h +++ b/llvm/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/llvm/lib/VMCore/Attributes.cpp b/llvm/lib/VMCore/Attributes.cpp index 16c5466..5f4b51f 100644 --- a/llvm/lib/VMCore/Attributes.cpp +++ b/llvm/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/llvm/lib/VMCore/Core.cpp b/llvm/lib/VMCore/Core.cpp index 90ecdae..7973325 100644 --- a/llvm/lib/VMCore/Core.cpp +++ b/llvm/lib/VMCore/Core.cpp @@ -1474,8 +1474,9 @@ LLVMAttribute LLVMGetAttribute(LLVMValueRef Arg) { void LLVMSetParamAlignment(LLVMValueRef Arg, unsigned align) { - unwrap(Arg)->addAttr( - Attributes::constructAlignmentFromInt(align)); + Attributes::Builder B; + B.addAlignmentAttr(align); + unwrap(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(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) ..............................--*/ -- 2.7.4