Query the parameter attributes directly instead of using the Attribute symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164727 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2012-09-26 22:15:19 +00:00
parent 2c18906118
commit 896f37f0f9
2 changed files with 8 additions and 8 deletions

View File

@ -272,13 +272,13 @@ public:
/// @brief Determine if the function returns a structure through first
/// pointer argument.
bool hasStructRetAttr() const {
return paramHasAttr(1, Attribute::StructRet);
return getParamAttributes(1).hasStructRetAttr();
}
/// @brief Determine if the parameter does not alias other parameters.
/// @param n The parameter to check. 1 is the first parameter, 0 is the return
bool doesNotAlias(unsigned n) const {
return paramHasAttr(n, Attribute::NoAlias);
return getParamAttributes(n).hasNoAliasAttr();
}
void setDoesNotAlias(unsigned n, bool DoesNotAlias = true) {
if (DoesNotAlias) addAttribute(n, Attribute::NoAlias);
@ -288,7 +288,7 @@ public:
/// @brief Determine if the parameter can be captured.
/// @param n The parameter to check. 1 is the first parameter, 0 is the return
bool doesNotCapture(unsigned n) const {
return paramHasAttr(n, Attribute::NoCapture);
return getParamAttributes(n).hasNoCaptureAttr();
}
void setDoesNotCapture(unsigned n, bool DoesNotCapture = true) {
if (DoesNotCapture) addAttribute(n, Attribute::NoCapture);

View File

@ -78,7 +78,7 @@ unsigned Argument::getArgNo() const {
/// in its containing function.
bool Argument::hasByValAttr() const {
if (!getType()->isPointerTy()) return false;
return getParent()->paramHasAttr(getArgNo()+1, Attribute::ByVal);
return getParent()->getParamAttributes(getArgNo()+1).hasByValAttr();
}
unsigned Argument::getParamAlignment() const {
@ -91,21 +91,21 @@ unsigned Argument::getParamAlignment() const {
/// it in its containing function.
bool Argument::hasNestAttr() const {
if (!getType()->isPointerTy()) return false;
return getParent()->paramHasAttr(getArgNo()+1, Attribute::Nest);
return getParent()->getParamAttributes(getArgNo()+1).hasNestAttr();
}
/// hasNoAliasAttr - Return true if this argument has the noalias attribute on
/// it in its containing function.
bool Argument::hasNoAliasAttr() const {
if (!getType()->isPointerTy()) return false;
return getParent()->paramHasAttr(getArgNo()+1, Attribute::NoAlias);
return getParent()->getParamAttributes(getArgNo()+1).hasNoAliasAttr();
}
/// hasNoCaptureAttr - Return true if this argument has the nocapture attribute
/// on it in its containing function.
bool Argument::hasNoCaptureAttr() const {
if (!getType()->isPointerTy()) return false;
return getParent()->paramHasAttr(getArgNo()+1, Attribute::NoCapture);
return getParent()->getParamAttributes(getArgNo()+1).hasNoCaptureAttr();
}
/// hasSRetAttr - Return true if this argument has the sret attribute on
@ -114,7 +114,7 @@ bool Argument::hasStructRetAttr() const {
if (!getType()->isPointerTy()) return false;
if (this != getParent()->arg_begin())
return false; // StructRet param must be first param
return getParent()->paramHasAttr(1, Attribute::StructRet);
return getParent()->getParamAttributes(1).hasStructRetAttr();
}
/// addAttr - Add a Attribute to an argument