Remove the last of uses that use the Attribute object as a collection of attributes.

Collections of attributes are handled via the AttributeSet class now. This
finally frees us up to make significant changes to how attributes are structured.

llvm-svn: 173229
This commit is contained in:
Bill Wendling 2013-01-23 06:15:10 +00:00
parent 49bc76cbb3
commit ce2f9c5c63
2 changed files with 12 additions and 7 deletions

View File

@ -1191,8 +1191,9 @@ void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI,
// Name the struct return argument.
if (CGM.ReturnTypeUsesSRet(FI)) {
AI->setName("agg.result");
AI->addAttr(llvm::Attribute::get(getLLVMContext(),
llvm::Attribute::NoAlias));
AI->addAttr(llvm::AttributeSet::get(getLLVMContext(),
AI->getArgNo() + 1,
llvm::Attribute::NoAlias));
++AI;
}
@ -1263,8 +1264,9 @@ void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI,
llvm::Value *V = AI;
if (Arg->getType().isRestrictQualified())
AI->addAttr(llvm::Attribute::get(getLLVMContext(),
llvm::Attribute::NoAlias));
AI->addAttr(llvm::AttributeSet::get(getLLVMContext(),
AI->getArgNo() + 1,
llvm::Attribute::NoAlias));
// Ensure the argument is the correct type.
if (V->getType() != ArgI.getCoerceToType())

View File

@ -1965,9 +1965,12 @@ static void replaceUsesOfNonProtoConstant(llvm::Constant *old,
}
// Add any parameter attributes.
llvm::Attribute pAttrs = oldAttrs.getParamAttributes(argNo + 1);
if (pAttrs.hasAttributes())
newAttrs.push_back(llvm::AttributeWithIndex::get(argNo + 1, pAttrs));
if (oldAttrs.hasAttributes(argNo + 1))
newAttrs.
push_back(llvm::AttributeWithIndex::
get(newFn->getContext(),
argNo + 1,
oldAttrs.getParamAttributes(argNo + 1)));
}
if (dontTransform)
continue;