diff options
author | Bill Wendling <isanbard@gmail.com> | 2012-10-09 21:49:51 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2012-10-09 21:49:51 +0000 |
commit | 2fa8af224ea026f9432e833fd6f42a216423a010 (patch) | |
tree | aa3b613bc1dae40772ada954b482dc88c3f5067b /include | |
parent | 3e2d76c946ba753c2b11af192a52e25b6f9b46ff (diff) |
Use the attribute enums to query if a function has an attribute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165551 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Instructions.h | 38 | ||||
-rw-r--r-- | include/llvm/Support/CallSite.h | 25 |
2 files changed, 15 insertions, 48 deletions
diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h index ea3aaae9c6..17b75b077f 100644 --- a/include/llvm/Instructions.h +++ b/include/llvm/Instructions.h @@ -1268,13 +1268,7 @@ public: void removeAttribute(unsigned i, Attributes attr); /// @brief Determine whether this call has the given attribute. - bool fnHasNoAliasAttr() const; - bool fnHasNoInlineAttr() const; - bool fnHasNoReturnAttr() const; - bool fnHasNoUnwindAttr() const; - bool fnHasReadNoneAttr() const; - bool fnHasReadOnlyAttr() const; - bool fnHasReturnsTwiceAttr() const; + bool hasFnAttr(Attributes::AttrVal A) const; /// @brief Determine whether the call or the callee has the given attributes. bool paramHasAttr(unsigned i, Attributes::AttrVal A) const; @@ -1285,7 +1279,7 @@ public: } /// @brief Return true if the call should not be inlined. - bool isNoInline() const { return fnHasNoInlineAttr(); } + bool isNoInline() const { return hasFnAttr(Attributes::NoInline); } void setIsNoInline(bool Value = true) { if (Value) addAttribute(~0, Attribute::NoInline); else removeAttribute(~0, Attribute::NoInline); @@ -1293,7 +1287,7 @@ public: /// @brief Return true if the call can return twice bool canReturnTwice() const { - return fnHasReturnsTwiceAttr(); + return hasFnAttr(Attributes::ReturnsTwice); } void setCanReturnTwice(bool Value = true) { if (Value) addAttribute(~0, Attribute::ReturnsTwice); @@ -1302,7 +1296,7 @@ public: /// @brief Determine if the call does not access memory. bool doesNotAccessMemory() const { - return fnHasReadNoneAttr(); + return hasFnAttr(Attributes::ReadNone); } void setDoesNotAccessMemory(bool NotAccessMemory = true) { if (NotAccessMemory) addAttribute(~0, Attribute::ReadNone); @@ -1311,7 +1305,7 @@ public: /// @brief Determine if the call does not access or only reads memory. bool onlyReadsMemory() const { - return doesNotAccessMemory() || fnHasReadOnlyAttr(); + return doesNotAccessMemory() || hasFnAttr(Attributes::ReadOnly); } void setOnlyReadsMemory(bool OnlyReadsMemory = true) { if (OnlyReadsMemory) addAttribute(~0, Attribute::ReadOnly); @@ -1319,14 +1313,14 @@ public: } /// @brief Determine if the call cannot return. - bool doesNotReturn() const { return fnHasNoReturnAttr(); } + bool doesNotReturn() const { return hasFnAttr(Attributes::NoReturn); } void setDoesNotReturn(bool DoesNotReturn = true) { if (DoesNotReturn) addAttribute(~0, Attribute::NoReturn); else removeAttribute(~0, Attribute::NoReturn); } /// @brief Determine if the call cannot unwind. - bool doesNotThrow() const { return fnHasNoUnwindAttr(); } + bool doesNotThrow() const { return hasFnAttr(Attributes::NoUnwind); } void setDoesNotThrow(bool DoesNotThrow = true) { if (DoesNotThrow) addAttribute(~0, Attribute::NoUnwind); else removeAttribute(~0, Attribute::NoUnwind); @@ -3037,13 +3031,7 @@ public: void removeAttribute(unsigned i, Attributes attr); /// @brief Determine whether this call has the NoAlias attribute. - bool fnHasNoAliasAttr() const; - bool fnHasNoInlineAttr() const; - bool fnHasNoReturnAttr() const; - bool fnHasNoUnwindAttr() const; - bool fnHasReadNoneAttr() const; - bool fnHasReadOnlyAttr() const; - bool fnHasReturnsTwiceAttr() const; + bool hasFnAttr(Attributes::AttrVal A) const; /// @brief Determine whether the call or the callee has the given attributes. bool paramHasAttr(unsigned i, Attributes::AttrVal A) const; @@ -3054,7 +3042,7 @@ public: } /// @brief Return true if the call should not be inlined. - bool isNoInline() const { return fnHasNoInlineAttr(); } + bool isNoInline() const { return hasFnAttr(Attributes::NoInline); } void setIsNoInline(bool Value = true) { if (Value) addAttribute(~0, Attribute::NoInline); else removeAttribute(~0, Attribute::NoInline); @@ -3062,7 +3050,7 @@ public: /// @brief Determine if the call does not access memory. bool doesNotAccessMemory() const { - return fnHasReadNoneAttr(); + return hasFnAttr(Attributes::ReadNone); } void setDoesNotAccessMemory(bool NotAccessMemory = true) { if (NotAccessMemory) addAttribute(~0, Attribute::ReadNone); @@ -3071,7 +3059,7 @@ public: /// @brief Determine if the call does not access or only reads memory. bool onlyReadsMemory() const { - return doesNotAccessMemory() || fnHasReadOnlyAttr(); + return doesNotAccessMemory() || hasFnAttr(Attributes::ReadOnly); } void setOnlyReadsMemory(bool OnlyReadsMemory = true) { if (OnlyReadsMemory) addAttribute(~0, Attribute::ReadOnly); @@ -3079,14 +3067,14 @@ public: } /// @brief Determine if the call cannot return. - bool doesNotReturn() const { return fnHasNoReturnAttr(); } + bool doesNotReturn() const { return hasFnAttr(Attributes::NoReturn); } void setDoesNotReturn(bool DoesNotReturn = true) { if (DoesNotReturn) addAttribute(~0, Attribute::NoReturn); else removeAttribute(~0, Attribute::NoReturn); } /// @brief Determine if the call cannot unwind. - bool doesNotThrow() const { return fnHasNoUnwindAttr(); } + bool doesNotThrow() const { return hasFnAttr(Attributes::NoUnwind); } void setDoesNotThrow(bool DoesNotThrow = true) { if (DoesNotThrow) addAttribute(~0, Attribute::NoUnwind); else removeAttribute(~0, Attribute::NoUnwind); diff --git a/include/llvm/Support/CallSite.h b/include/llvm/Support/CallSite.h index c15326ee95..1b25897646 100644 --- a/include/llvm/Support/CallSite.h +++ b/include/llvm/Support/CallSite.h @@ -185,29 +185,8 @@ public: } /// \brief Return true if this function has the given attribute. - bool fnHasNoAliasAttr() const { - CALLSITE_DELEGATE_GETTER(fnHasNoAliasAttr()); - } - bool fnHasNoInlineAttr() const { - CALLSITE_DELEGATE_GETTER(fnHasNoInlineAttr()); - } - bool fnHasNoReturnAttr() const { - CALLSITE_DELEGATE_GETTER(fnHasNoReturnAttr()); - } - bool fnHasNoUnwindAttr() const { - CALLSITE_DELEGATE_GETTER(fnHasNoUnwindAttr()); - } - bool fnHasReadNoneAttr() const { - CALLSITE_DELEGATE_GETTER(fnHasReadNoneAttr()); - } - bool fnHasReadOnlyAttr() const { - CALLSITE_DELEGATE_GETTER(fnHasReadOnlyAttr()); - } - bool fnHasReturnsTwiceAttr() const { - CALLSITE_DELEGATE_GETTER(fnHasReturnsTwiceAttr()); - } - bool hasFnAttr(Attributes N) const { - CALLSITE_DELEGATE_GETTER(hasFnAttr(N)); + bool hasFnAttr(Attributes::AttrVal A) const { + CALLSITE_DELEGATE_GETTER(hasFnAttr(A)); } /// \brief Return true if the call or the callee has the given attribute. |