diff options
author | Bill Wendling <isanbard@gmail.com> | 2012-10-10 03:12:49 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2012-10-10 03:12:49 +0000 |
commit | f5e6d70f8c8f21e744a10fd463cdeddae31cbab5 (patch) | |
tree | e8c338c945b3a44c80d0d83c841eec689bfd75b7 | |
parent | ebf3a37c0a5cea1ded89750e88d672951bf133cc (diff) | |
download | llvm-f5e6d70f8c8f21e744a10fd463cdeddae31cbab5.tar.gz llvm-f5e6d70f8c8f21e744a10fd463cdeddae31cbab5.tar.bz2 llvm-f5e6d70f8c8f21e744a10fd463cdeddae31cbab5.tar.xz |
Have 'addFnAttr' take the attribute enum value. Then have it build the attribute object and add it appropriately. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165595 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Function.h | 33 | ||||
-rw-r--r-- | lib/Transforms/IPO/Inliner.cpp | 4 | ||||
-rw-r--r-- | lib/Transforms/Instrumentation/GCOVProfiling.cpp | 8 | ||||
-rw-r--r-- | lib/Transforms/Utils/CodeExtractor.cpp | 2 |
4 files changed, 19 insertions, 28 deletions
diff --git a/include/llvm/Function.h b/include/llvm/Function.h index 5601c471f2..2781959eaf 100644 --- a/include/llvm/Function.h +++ b/include/llvm/Function.h @@ -176,9 +176,11 @@ public: /// addFnAttr - Add function attributes to this function. /// - void addFnAttr(Attributes N) { + void addFnAttr(Attributes::AttrVal N) { // Function Attributes are stored at ~0 index - addAttribute(~0U, N); + Attributes::Builder B; + B.addAttribute(N); + addAttribute(~0U, Attributes::get(B)); } /// removeFnAttr - Remove function attributes from this function. @@ -221,9 +223,8 @@ public: bool doesNotAccessMemory() const { return getFnAttributes().hasAttribute(Attributes::ReadNone); } - void setDoesNotAccessMemory(bool DoesNotAccessMemory = true) { - if (DoesNotAccessMemory) addFnAttr(Attribute::ReadNone); - else removeFnAttr(Attribute::ReadNone); + void setDoesNotAccessMemory() { + addFnAttr(Attributes::ReadNone); } /// @brief Determine if the function does not access or only reads memory. @@ -231,27 +232,24 @@ public: return doesNotAccessMemory() || getFnAttributes().hasAttribute(Attributes::ReadOnly); } - void setOnlyReadsMemory(bool OnlyReadsMemory = true) { - if (OnlyReadsMemory) addFnAttr(Attribute::ReadOnly); - else removeFnAttr(Attribute::ReadOnly | Attribute::ReadNone); + void setOnlyReadsMemory() { + addFnAttr(Attributes::ReadOnly); } /// @brief Determine if the function cannot return. bool doesNotReturn() const { return getFnAttributes().hasAttribute(Attributes::NoReturn); } - void setDoesNotReturn(bool DoesNotReturn = true) { - if (DoesNotReturn) addFnAttr(Attribute::NoReturn); - else removeFnAttr(Attribute::NoReturn); + void setDoesNotReturn() { + addFnAttr(Attributes::NoReturn); } /// @brief Determine if the function cannot unwind. bool doesNotThrow() const { return getFnAttributes().hasAttribute(Attributes::NoUnwind); } - void setDoesNotThrow(bool DoesNotThrow = true) { - if (DoesNotThrow) addFnAttr(Attribute::NoUnwind); - else removeFnAttr(Attribute::NoUnwind); + void setDoesNotThrow() { + addFnAttr(Attributes::NoUnwind); } /// @brief True if the ABI mandates (or the user requested) that this @@ -259,11 +257,8 @@ public: bool hasUWTable() const { return getFnAttributes().hasAttribute(Attributes::UWTable); } - void setHasUWTable(bool HasUWTable = true) { - if (HasUWTable) - addFnAttr(Attribute::UWTable); - else - removeFnAttr(Attribute::UWTable); + void setHasUWTable() { + addFnAttr(Attributes::UWTable); } /// @brief True if this function needs an unwind table. diff --git a/lib/Transforms/IPO/Inliner.cpp b/lib/Transforms/IPO/Inliner.cpp index 876afd19f1..abcb25fd45 100644 --- a/lib/Transforms/IPO/Inliner.cpp +++ b/lib/Transforms/IPO/Inliner.cpp @@ -94,10 +94,10 @@ static bool InlineCallIfPossible(CallSite CS, InlineFunctionInfo &IFI, // If the inlined function had a higher stack protection level than the // calling function, then bump up the caller's stack protection level. if (Callee->getFnAttributes().hasAttribute(Attributes::StackProtectReq)) - Caller->addFnAttr(Attribute::StackProtectReq); + Caller->addFnAttr(Attributes::StackProtectReq); else if (Callee->getFnAttributes().hasAttribute(Attributes::StackProtect) && !Caller->getFnAttributes().hasAttribute(Attributes::StackProtectReq)) - Caller->addFnAttr(Attribute::StackProtect); + Caller->addFnAttr(Attributes::StackProtect); // Look at all of the allocas that we inlined through this call site. If we // have already inlined other allocas through other calls into this function, diff --git a/lib/Transforms/Instrumentation/GCOVProfiling.cpp b/lib/Transforms/Instrumentation/GCOVProfiling.cpp index 66d8570108..e9192e5cdd 100644 --- a/lib/Transforms/Instrumentation/GCOVProfiling.cpp +++ b/lib/Transforms/Instrumentation/GCOVProfiling.cpp @@ -682,9 +682,7 @@ void GCOVProfiler::insertCounterWriteout( "__llvm_gcov_init", M); F->setUnnamedAddr(true); F->setLinkage(GlobalValue::InternalLinkage); - Attributes::Builder B; - B.addAttribute(Attributes::NoInline); - F->addFnAttr(Attributes::get(B)); + F->addFnAttr(Attributes::NoInline); BB = BasicBlock::Create(*Ctx, "entry", F); Builder.SetInsertPoint(BB); @@ -703,9 +701,7 @@ void GCOVProfiler::insertIndirectCounterIncrement() { cast<Function>(GCOVProfiler::getIncrementIndirectCounterFunc()); Fn->setUnnamedAddr(true); Fn->setLinkage(GlobalValue::InternalLinkage); - Attributes::Builder B; - B.addAttribute(Attributes::NoInline); - Fn->addFnAttr(Attributes::get(B)); + Fn->addFnAttr(Attributes::NoInline); Type *Int32Ty = Type::getInt32Ty(*Ctx); Type *Int64Ty = Type::getInt64Ty(*Ctx); diff --git a/lib/Transforms/Utils/CodeExtractor.cpp b/lib/Transforms/Utils/CodeExtractor.cpp index c545cd68c9..281714f4c1 100644 --- a/lib/Transforms/Utils/CodeExtractor.cpp +++ b/lib/Transforms/Utils/CodeExtractor.cpp @@ -346,7 +346,7 @@ Function *CodeExtractor::constructFunction(const ValueSet &inputs, header->getName(), M); // If the old function is no-throw, so is the new one. if (oldFunction->doesNotThrow()) - newFunction->setDoesNotThrow(true); + newFunction->setDoesNotThrow(); newFunction->getBasicBlockList().push_back(newRootNode); |