Use the AttributeSet instead of AttributeWithIndex.

In the future, AttributeWithIndex won't be used anymore. Besides, it exposes the
internals of the AttributeSet to outside users, which isn't goodness.

llvm-svn: 173605
This commit is contained in:
Bill Wendling
2013-01-27 02:46:53 +00:00
parent f5075a4fe0
commit 290d952bb4
3 changed files with 23 additions and 36 deletions

View File

@@ -1875,15 +1875,14 @@ static void replaceUsesOfNonProtoConstant(llvm::Constant *old,
continue;
// Get the call site's attribute list.
SmallVector<llvm::AttributeWithIndex, 8> newAttrs;
SmallVector<llvm::AttributeSet, 8> newAttrs;
llvm::AttributeSet oldAttrs = callSite.getAttributes();
// Collect any return attributes from the call.
if (oldAttrs.hasAttributes(llvm::AttributeSet::ReturnIndex))
newAttrs.push_back(
llvm::AttributeWithIndex::get(newFn->getContext(),
llvm::AttributeSet::ReturnIndex,
oldAttrs.getRetAttributes()));
llvm::AttributeSet::get(newFn->getContext(),
oldAttrs.getRetAttributes()));
// If the function was passed too few arguments, don't transform.
unsigned newNumArgs = newFn->arg_size();
@@ -1903,19 +1902,16 @@ static void replaceUsesOfNonProtoConstant(llvm::Constant *old,
// Add any parameter attributes.
if (oldAttrs.hasAttributes(argNo + 1))
newAttrs.
push_back(llvm::AttributeWithIndex::
get(newFn->getContext(),
argNo + 1,
oldAttrs.getParamAttributes(argNo + 1)));
push_back(llvm::
AttributeSet::get(newFn->getContext(),
oldAttrs.getParamAttributes(argNo + 1)));
}
if (dontTransform)
continue;
if (oldAttrs.hasAttributes(llvm::AttributeSet::FunctionIndex))
newAttrs.push_back(llvm::
AttributeWithIndex::get(newFn->getContext(),
llvm::AttributeSet::FunctionIndex,
oldAttrs.getFnAttributes()));
newAttrs.push_back(llvm::AttributeSet::get(newFn->getContext(),
oldAttrs.getFnAttributes()));
// Okay, we can transform this. Create the new call instruction and copy
// over the required information.