[llvm-commits] [llvm] r165895 - in /llvm/trunk: include/llvm/Attributes.h lib/Transforms/IPO/PruneEH.cpp lib/Transforms/Scalar/ObjCARC.cpp lib/Transforms/Utils/CloneFunction.cpp lib/VMCore/Attributes.cpp lib/VMCore/Core.cpp lib/VMCore/Function.cp
Bill Wendling
isanbard at gmail.com
Sun Oct 14 11:11:25 PDT 2012
Hi Sean,
Yes. It's on my list of things to do when cleaning this mess up. :)
-bw
On Oct 14, 2012, at 7:39 AM, Sean Silva <silvas at purdue.edu> wrote:
> Hi Bill,
>
> This new Attributes code you are putting in seems to have an alarming
> number of naked `~0` all of the place. After briefly looking at the
> source code, it looks like it is being used as a sentinel value to
> refer to the function itself. Are you planning on making this a named
> constant at some point?
>
> -- Sean Silva
>
> On Sun, Oct 14, 2012 at 3:36 AM, Bill Wendling <isanbard at gmail.com> wrote:
>> Author: void
>> Date: Sun Oct 14 02:35:59 2012
>> New Revision: 165895
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=165895&view=rev
>> Log:
>> Remove the bitwise assignment OR operator from the Attributes class. Replace it with the equivalent from the builder class.
>>
>> Modified:
>> llvm/trunk/include/llvm/Attributes.h
>> llvm/trunk/lib/Transforms/IPO/PruneEH.cpp
>> llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp
>> llvm/trunk/lib/Transforms/Utils/CloneFunction.cpp
>> llvm/trunk/lib/VMCore/Attributes.cpp
>> llvm/trunk/lib/VMCore/Core.cpp
>> llvm/trunk/lib/VMCore/Function.cpp
>> llvm/trunk/lib/VMCore/Instructions.cpp
>>
>> Modified: llvm/trunk/include/llvm/Attributes.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Attributes.h?rev=165895&r1=165894&r2=165895&view=diff
>> ==============================================================================
>> --- llvm/trunk/include/llvm/Attributes.h (original)
>> +++ llvm/trunk/include/llvm/Attributes.h Sun Oct 14 02:35:59 2012
>> @@ -236,7 +236,6 @@
>> }
>>
>> Attributes operator & (const Attributes &A) const;
>> - Attributes &operator |= (const Attributes &A);
>> Attributes &operator &= (const Attributes &A);
>>
>> uint64_t Raw() const;
>> @@ -351,7 +350,7 @@
>> /// addAttr - Add the specified attribute at the specified index to this
>> /// attribute list. Since attribute lists are immutable, this
>> /// returns the new list.
>> - AttrListPtr addAttr(unsigned Idx, Attributes Attrs) const;
>> + AttrListPtr addAttr(LLVMContext &C, unsigned Idx, Attributes Attrs) const;
>>
>> /// removeAttr - Remove the specified attribute at the specified index from
>> /// this attribute list. Since attribute lists are immutable, this
>>
>> Modified: llvm/trunk/lib/Transforms/IPO/PruneEH.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PruneEH.cpp?rev=165895&r1=165894&r2=165895&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Transforms/IPO/PruneEH.cpp (original)
>> +++ llvm/trunk/lib/Transforms/IPO/PruneEH.cpp Sun Oct 14 02:35:59 2012
>> @@ -146,7 +146,8 @@
>>
>> Function *F = (*I)->getFunction();
>> const AttrListPtr &PAL = F->getAttributes();
>> - const AttrListPtr &NPAL = PAL.addAttr(~0, Attributes::get(NewAttributes));
>> + const AttrListPtr &NPAL = PAL.addAttr(F->getContext(), ~0,
>> + Attributes::get(NewAttributes));
>> if (PAL != NPAL) {
>> MadeChange = true;
>> F->setAttributes(NPAL);
>>
>> Modified: llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp?rev=165895&r1=165894&r2=165895&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp (original)
>> +++ llvm/trunk/lib/Transforms/Scalar/ObjCARC.cpp Sun Oct 14 02:35:59 2012
>> @@ -1790,7 +1790,8 @@
>> FunctionType *FTy = FunctionType::get(I8X, Params, /*isVarArg=*/false);
>> Attributes::Builder B;
>> B.addAttribute(Attributes::NoUnwind);
>> - AttrListPtr Attributes = AttrListPtr().addAttr(~0u, Attributes::get(B));
>> + AttrListPtr Attributes = AttrListPtr().addAttr(M->getContext(), ~0u,
>> + Attributes::get(B));
>> RetainRVCallee =
>> M->getOrInsertFunction("objc_retainAutoreleasedReturnValue", FTy,
>> Attributes);
>> @@ -1806,7 +1807,8 @@
>> FunctionType *FTy = FunctionType::get(I8X, Params, /*isVarArg=*/false);
>> Attributes::Builder B;
>> B.addAttribute(Attributes::NoUnwind);
>> - AttrListPtr Attributes = AttrListPtr().addAttr(~0u, Attributes::get(B));
>> + AttrListPtr Attributes = AttrListPtr().addAttr(M->getContext(), ~0u,
>> + Attributes::get(B));
>> AutoreleaseRVCallee =
>> M->getOrInsertFunction("objc_autoreleaseReturnValue", FTy,
>> Attributes);
>> @@ -1820,7 +1822,8 @@
>> Type *Params[] = { PointerType::getUnqual(Type::getInt8Ty(C)) };
>> Attributes::Builder B;
>> B.addAttribute(Attributes::NoUnwind);
>> - AttrListPtr Attributes = AttrListPtr().addAttr(~0u, Attributes::get(B));
>> + AttrListPtr Attributes = AttrListPtr().addAttr(M->getContext(), ~0u,
>> + Attributes::get(B));
>> ReleaseCallee =
>> M->getOrInsertFunction(
>> "objc_release",
>> @@ -1836,7 +1839,8 @@
>> Type *Params[] = { PointerType::getUnqual(Type::getInt8Ty(C)) };
>> Attributes::Builder B;
>> B.addAttribute(Attributes::NoUnwind);
>> - AttrListPtr Attributes = AttrListPtr().addAttr(~0u, Attributes::get(B));
>> + AttrListPtr Attributes = AttrListPtr().addAttr(M->getContext(), ~0u,
>> + Attributes::get(B));
>> RetainCallee =
>> M->getOrInsertFunction(
>> "objc_retain",
>> @@ -1867,7 +1871,8 @@
>> Type *Params[] = { PointerType::getUnqual(Type::getInt8Ty(C)) };
>> Attributes::Builder B;
>> B.addAttribute(Attributes::NoUnwind);
>> - AttrListPtr Attributes = AttrListPtr().addAttr(~0u, Attributes::get(B));
>> + AttrListPtr Attributes = AttrListPtr().addAttr(M->getContext(), ~0u,
>> + Attributes::get(B));
>> AutoreleaseCallee =
>> M->getOrInsertFunction(
>> "objc_autorelease",
>> @@ -3845,8 +3850,8 @@
>> Attributes::Builder BNoCapture;
>> BNoCapture.addAttribute(Attributes::NoCapture);
>> AttrListPtr Attributes = AttrListPtr()
>> - .addAttr(~0u, Attributes::get(BNoUnwind))
>> - .addAttr(1, Attributes::get(BNoCapture));
>> + .addAttr(M->getContext(), ~0u, Attributes::get(BNoUnwind))
>> + .addAttr(M->getContext(), 1, Attributes::get(BNoCapture));
>>
>> StoreStrongCallee =
>> M->getOrInsertFunction(
>> @@ -3865,7 +3870,8 @@
>> FunctionType *FTy = FunctionType::get(I8X, Params, /*isVarArg=*/false);
>> Attributes::Builder B;
>> B.addAttribute(Attributes::NoUnwind);
>> - AttrListPtr Attributes = AttrListPtr().addAttr(~0u, Attributes::get(B));
>> + AttrListPtr Attributes = AttrListPtr().addAttr(M->getContext(), ~0u,
>> + Attributes::get(B));
>> RetainAutoreleaseCallee =
>> M->getOrInsertFunction("objc_retainAutorelease", FTy, Attributes);
>> }
>> @@ -3880,7 +3886,8 @@
>> FunctionType *FTy = FunctionType::get(I8X, Params, /*isVarArg=*/false);
>> Attributes::Builder B;
>> B.addAttribute(Attributes::NoUnwind);
>> - AttrListPtr Attributes = AttrListPtr().addAttr(~0u, Attributes::get(B));
>> + AttrListPtr Attributes = AttrListPtr().addAttr(M->getContext(), ~0u,
>> + Attributes::get(B));
>> RetainAutoreleaseRVCallee =
>> M->getOrInsertFunction("objc_retainAutoreleaseReturnValue", FTy,
>> Attributes);
>>
>> Modified: llvm/trunk/lib/Transforms/Utils/CloneFunction.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/CloneFunction.cpp?rev=165895&r1=165894&r2=165895&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Transforms/Utils/CloneFunction.cpp (original)
>> +++ llvm/trunk/lib/Transforms/Utils/CloneFunction.cpp Sun Oct 14 02:35:59 2012
>> @@ -98,10 +98,12 @@
>> Anew->addAttr( OldFunc->getAttributes()
>> .getParamAttributes(I->getArgNo() + 1));
>> NewFunc->setAttributes(NewFunc->getAttributes()
>> - .addAttr(0, OldFunc->getAttributes()
>> + .addAttr(NewFunc->getContext(), 0,
>> + OldFunc->getAttributes()
>> .getRetAttributes()));
>> NewFunc->setAttributes(NewFunc->getAttributes()
>> - .addAttr(~0, OldFunc->getAttributes()
>> + .addAttr(NewFunc->getContext(), ~0,
>> + OldFunc->getAttributes()
>> .getFnAttributes()));
>>
>> }
>>
>> Modified: llvm/trunk/lib/VMCore/Attributes.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Attributes.cpp?rev=165895&r1=165894&r2=165895&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/VMCore/Attributes.cpp (original)
>> +++ llvm/trunk/lib/VMCore/Attributes.cpp Sun Oct 14 02:35:59 2012
>> @@ -96,10 +96,6 @@
>> Attributes Attributes::operator & (const Attributes &A) const {
>> return Attributes(Raw() & A.Raw());
>> }
>> -Attributes &Attributes::operator |= (const Attributes &A) {
>> - Attrs.Bits |= A.Raw();
>> - return *this;
>> -}
>> Attributes &Attributes::operator &= (const Attributes &A) {
>> Attrs.Bits &= A.Raw();
>> return *this;
>> @@ -504,7 +500,8 @@
>> return AttrList->Attrs[i].Attrs;
>> }
>>
>> -AttrListPtr AttrListPtr::addAttr(unsigned Idx, Attributes Attrs) const {
>> +AttrListPtr AttrListPtr::addAttr(LLVMContext &C, unsigned Idx,
>> + Attributes Attrs) const {
>> Attributes OldAttrs = getAttributes(Idx);
>> #ifndef NDEBUG
>> // FIXME it is not obvious how this should work for alignment.
>> @@ -532,7 +529,9 @@
>>
>> // If there are attributes already at this index, merge them in.
>> if (i != e && OldAttrList[i].Index == Idx) {
>> - Attrs |= OldAttrList[i].Attrs;
>> + Attrs =
>> + Attributes::get(C, Attributes::Builder(Attrs).
>> + addAttributes(OldAttrList[i].Attrs));
>> ++i;
>> }
>>
>>
>> Modified: llvm/trunk/lib/VMCore/Core.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Core.cpp?rev=165895&r1=165894&r2=165895&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/VMCore/Core.cpp (original)
>> +++ llvm/trunk/lib/VMCore/Core.cpp Sun Oct 14 02:35:59 2012
>> @@ -1381,7 +1381,8 @@
>> void LLVMAddFunctionAttr(LLVMValueRef Fn, LLVMAttribute PA) {
>> Function *Func = unwrap<Function>(Fn);
>> const AttrListPtr PAL = Func->getAttributes();
>> - const AttrListPtr PALnew = PAL.addAttr(~0U, Attributes(PA));
>> + const AttrListPtr PALnew = PAL.addAttr(Func->getContext(), ~0U,
>> + Attributes(PA));
>> Func->setAttributes(PALnew);
>> }
>>
>> @@ -1667,7 +1668,7 @@
>> LLVMAttribute PA) {
>> CallSite Call = CallSite(unwrap<Instruction>(Instr));
>> Call.setAttributes(
>> - Call.getAttributes().addAttr(index, Attributes(PA)));
>> + Call.getAttributes().addAttr(Call->getContext(), index, Attributes(PA)));
>> }
>>
>> void LLVMRemoveInstrAttribute(LLVMValueRef Instr, unsigned index,
>> @@ -1682,7 +1683,8 @@
>> CallSite Call = CallSite(unwrap<Instruction>(Instr));
>> Attributes::Builder B;
>> B.addAlignmentAttr(align);
>> - Call.setAttributes(Call.getAttributes().addAttr(index, Attributes::get(B)));
>> + Call.setAttributes(Call.getAttributes().addAttr(Call->getContext(), index,
>> + Attributes::get(B)));
>> }
>>
>> /*--.. Operations on call instructions (only) ..............................--*/
>>
>> Modified: llvm/trunk/lib/VMCore/Function.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Function.cpp?rev=165895&r1=165894&r2=165895&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/VMCore/Function.cpp (original)
>> +++ llvm/trunk/lib/VMCore/Function.cpp Sun Oct 14 02:35:59 2012
>> @@ -249,7 +249,7 @@
>>
>> void Function::addAttribute(unsigned i, Attributes attr) {
>> AttrListPtr PAL = getAttributes();
>> - PAL = PAL.addAttr(i, attr);
>> + PAL = PAL.addAttr(getContext(), i, attr);
>> setAttributes(PAL);
>> }
>>
>>
>> Modified: llvm/trunk/lib/VMCore/Instructions.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Instructions.cpp?rev=165895&r1=165894&r2=165895&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/VMCore/Instructions.cpp (original)
>> +++ llvm/trunk/lib/VMCore/Instructions.cpp Sun Oct 14 02:35:59 2012
>> @@ -332,7 +332,7 @@
>>
>> void CallInst::addAttribute(unsigned i, Attributes attr) {
>> AttrListPtr PAL = getAttributes();
>> - PAL = PAL.addAttr(i, attr);
>> + PAL = PAL.addAttr(getContext(), i, attr);
>> setAttributes(PAL);
>> }
>>
>> @@ -588,7 +588,7 @@
>>
>> void InvokeInst::addAttribute(unsigned i, Attributes attr) {
>> AttrListPtr PAL = getAttributes();
>> - PAL = PAL.addAttr(i, attr);
>> + PAL = PAL.addAttr(getContext(), i, attr);
>> setAttributes(PAL);
>> }
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list