From 5886b7bfc82385dfd35b7602304c86075e1d72e6 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Sun, 14 Oct 2012 06:39:53 +0000 Subject: Remove the bitwise NOT operator from the Attributes class. Replace it with the equivalent from the builder class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165892 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/DeadArgumentElimination.cpp | 8 ++++++-- lib/Transforms/IPO/GlobalOpt.cpp | 8 ++++---- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'lib/Transforms') diff --git a/lib/Transforms/IPO/DeadArgumentElimination.cpp b/lib/Transforms/IPO/DeadArgumentElimination.cpp index b107669b17..6b52387504 100644 --- a/lib/Transforms/IPO/DeadArgumentElimination.cpp +++ b/lib/Transforms/IPO/DeadArgumentElimination.cpp @@ -762,7 +762,9 @@ bool DAE::RemoveDeadStuffFromFunction(Function *F) { // here. Currently, this should not be possible, but special handling might be // required when new return value attributes are added. if (NRetTy->isVoidTy()) - RAttrs &= ~Attributes::typeIncompatible(NRetTy); + RAttrs = + Attributes::get(Attributes::Builder(RAttrs). + removeAttributes(Attributes::typeIncompatible(NRetTy))); else assert((RAttrs & Attributes::typeIncompatible(NRetTy)) == 0 && "Return attributes no longer compatible?"); @@ -831,7 +833,9 @@ bool DAE::RemoveDeadStuffFromFunction(Function *F) { Attributes RAttrs = CallPAL.getRetAttributes(); Attributes FnAttrs = CallPAL.getFnAttributes(); // Adjust in case the function was changed to return void. - RAttrs &= ~Attributes::typeIncompatible(NF->getReturnType()); + RAttrs = + Attributes::get(Attributes::Builder(RAttrs). + removeAttributes(Attributes::typeIncompatible(NF->getReturnType()))); if (RAttrs) AttributesVec.push_back(AttributeWithIndex::get(0, RAttrs)); diff --git a/lib/Transforms/IPO/GlobalOpt.cpp b/lib/Transforms/IPO/GlobalOpt.cpp index a1b976577a..a32f35a8df 100644 --- a/lib/Transforms/IPO/GlobalOpt.cpp +++ b/lib/Transforms/IPO/GlobalOpt.cpp @@ -2061,7 +2061,7 @@ static void ChangeCalleesToFastCall(Function *F) { } } -static AttrListPtr StripNest(const AttrListPtr &Attrs) { +static AttrListPtr StripNest(LLVMContext &C, const AttrListPtr &Attrs) { Attributes::Builder B; B.addAttribute(Attributes::Nest); @@ -2070,19 +2070,19 @@ static AttrListPtr StripNest(const AttrListPtr &Attrs) { continue; // There can be only one. - return Attrs.removeAttr(Attrs.getSlot(i).Index, Attributes::get(B)); + return Attrs.removeAttr(C, Attrs.getSlot(i).Index, Attributes::get(B)); } return Attrs; } static void RemoveNestAttribute(Function *F) { - F->setAttributes(StripNest(F->getAttributes())); + F->setAttributes(StripNest(F->getContext(), F->getAttributes())); for (Value::use_iterator UI = F->use_begin(), E = F->use_end(); UI != E;++UI){ if (isa(*UI)) continue; CallSite User(cast(*UI)); - User.setAttributes(StripNest(User.getAttributes())); + User.setAttributes(StripNest(F->getContext(), User.getAttributes())); } } -- cgit v1.2.3-70-g09d2