[llvm-commits] [llvm] r173601 - Use the AttributeSet instead of AttributeWithIndex.
Bill Wendling
isanbard at gmail.com
Sat Jan 26 17:57:28 PST 2013
Author: void
Date: Sat Jan 26 19:57:28 2013
New Revision: 173601
URL: http://llvm.org/viewvc/llvm-project?rev=173601&view=rev
Log:
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.
Modified:
llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp
Modified: llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp?rev=173601&r1=173600&r2=173601&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp Sat Jan 26 19:57:28 2013
@@ -514,14 +514,13 @@ CallGraphNode *ArgPromotion::DoPromotion
// Attribute - Keep track of the parameter attributes for the arguments
// that we are *not* promoting. For the ones that we do promote, the parameter
// attributes are lost
- SmallVector<AttributeWithIndex, 8> AttributesVec;
+ SmallVector<AttributeSet, 8> AttributesVec;
const AttributeSet &PAL = F->getAttributes();
// Add any return attributes.
if (PAL.hasAttributes(AttributeSet::ReturnIndex))
- AttributesVec.push_back(AttributeWithIndex::get(F->getContext(),
- AttributeSet::ReturnIndex,
- PAL.getRetAttributes()));
+ AttributesVec.push_back(AttributeSet::get(F->getContext(),
+ PAL.getRetAttributes()));
// First, determine the new argument list
unsigned ArgIndex = 1;
@@ -539,10 +538,9 @@ CallGraphNode *ArgPromotion::DoPromotion
Params.push_back(I->getType());
AttributeSet attrs = PAL.getParamAttributes(ArgIndex);
if (attrs.hasAttributes(ArgIndex)) {
+ AttrBuilder B(attrs, ArgIndex);
AttributesVec.
- push_back(AttributeWithIndex::get(F->getContext(),
- ArgIndex, attrs));
- AttributesVec.back().Index = Params.size();
+ push_back(AttributeSet::get(F->getContext(), Params.size(), B));
}
} else if (I->use_empty()) {
// Dead argument (which are always marked as promotable)
@@ -596,9 +594,8 @@ CallGraphNode *ArgPromotion::DoPromotion
// Add any function attributes.
if (PAL.hasAttributes(AttributeSet::FunctionIndex))
- AttributesVec.push_back(AttributeWithIndex::get(FTy->getContext(),
- AttributeSet::FunctionIndex,
- PAL.getFnAttributes()));
+ AttributesVec.push_back(AttributeSet::get(FTy->getContext(),
+ PAL.getFnAttributes()));
Type *RetTy = FTy->getReturnType();
@@ -644,9 +641,8 @@ CallGraphNode *ArgPromotion::DoPromotion
// Add any return attributes.
if (CallPAL.hasAttributes(AttributeSet::ReturnIndex))
- AttributesVec.push_back(AttributeWithIndex::get(F->getContext(),
- AttributeSet::ReturnIndex,
- CallPAL.getRetAttributes()));
+ AttributesVec.push_back(AttributeSet::get(F->getContext(),
+ CallPAL.getRetAttributes()));
// Loop over the operands, inserting GEP and loads in the caller as
// appropriate.
@@ -658,10 +654,9 @@ CallGraphNode *ArgPromotion::DoPromotion
Args.push_back(*AI); // Unmodified argument
if (CallPAL.hasAttributes(ArgIndex)) {
+ AttrBuilder B(CallPAL, ArgIndex);
AttributesVec.
- push_back(AttributeWithIndex::get(F->getContext(), ArgIndex,
- CallPAL.getParamAttributes(ArgIndex)));
- AttributesVec.back().Index = Args.size();
+ push_back(AttributeSet::get(F->getContext(), Args.size(), B));
}
} else if (ByValArgsToTransform.count(I)) {
// Emit a GEP and load for each element of the struct.
@@ -722,18 +717,16 @@ CallGraphNode *ArgPromotion::DoPromotion
for (; AI != CS.arg_end(); ++AI, ++ArgIndex) {
Args.push_back(*AI);
if (CallPAL.hasAttributes(ArgIndex)) {
+ AttrBuilder B(CallPAL, ArgIndex);
AttributesVec.
- push_back(AttributeWithIndex::get(F->getContext(), ArgIndex,
- CallPAL.getParamAttributes(ArgIndex)));
- AttributesVec.back().Index = Args.size();
+ push_back(AttributeSet::get(F->getContext(), Args.size(), B));
}
}
// Add any function attributes.
if (CallPAL.hasAttributes(AttributeSet::FunctionIndex))
- AttributesVec.push_back(AttributeWithIndex::get(Call->getContext(),
- AttributeSet::FunctionIndex,
- CallPAL.getFnAttributes()));
+ AttributesVec.push_back(AttributeSet::get(Call->getContext(),
+ CallPAL.getFnAttributes()));
Instruction *New;
if (InvokeInst *II = dyn_cast<InvokeInst>(Call)) {
More information about the llvm-commits
mailing list