projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move all of the header files which are involved in modelling the LLVM IR
[oota-llvm.git]
/
lib
/
Transforms
/
IPO
/
ArgumentPromotion.cpp
diff --git
a/lib/Transforms/IPO/ArgumentPromotion.cpp
b/lib/Transforms/IPO/ArgumentPromotion.cpp
index be48b2063fb62c388c059e36662a5ba4c666de9e..c1453e2467bd1d948c194561943ee6878e3ef5e1 100644
(file)
--- a/
lib/Transforms/IPO/ArgumentPromotion.cpp
+++ b/
lib/Transforms/IPO/ArgumentPromotion.cpp
@@
-31,21
+31,21
@@
#define DEBUG_TYPE "argpromotion"
#include "llvm/Transforms/IPO.h"
#define DEBUG_TYPE "argpromotion"
#include "llvm/Transforms/IPO.h"
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-#include "llvm/Module.h"
-#include "llvm/CallGraphSCCPass.h"
-#include "llvm/Instructions.h"
-#include "llvm/LLVMContext.h"
+#include "llvm/ADT/DepthFirstIterator.h"
+#include "llvm/ADT/Statistic.h"
+#include "llvm/ADT/StringExtras.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/CallGraph.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/CallGraph.h"
-#include "llvm/Support/CallSite.h"
+#include "llvm/CallGraphSCCPass.h"
+#include "llvm/IR/Constants.h"
+#include "llvm/IR/DerivedTypes.h"
+#include "llvm/IR/Instructions.h"
+#include "llvm/IR/LLVMContext.h"
+#include "llvm/IR/Module.h"
#include "llvm/Support/CFG.h"
#include "llvm/Support/CFG.h"
+#include "llvm/Support/CallSite.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
-#include "llvm/ADT/DepthFirstIterator.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/ADT/StringExtras.h"
#include <set>
using namespace llvm;
#include <set>
using namespace llvm;
@@
-153,8
+153,8
@@
CallGraphNode *ArgPromotion::PromoteArguments(CallGraphNode *CGN) {
SmallPtrSet<Argument*, 8> ArgsToPromote;
SmallPtrSet<Argument*, 8> ByValArgsToTransform;
for (unsigned i = 0; i != PointerArgs.size(); ++i) {
SmallPtrSet<Argument*, 8> ArgsToPromote;
SmallPtrSet<Argument*, 8> ByValArgsToTransform;
for (unsigned i = 0; i != PointerArgs.size(); ++i) {
- bool isByVal=F->get
ParamAttributes(PointerArgs[i].second+1
).
- hasAttribute(
Attributes
::ByVal);
+ bool isByVal=F->get
Attributes(
).
+ hasAttribute(
PointerArgs[i].second+1, Attribute
::ByVal);
Argument *PtrArg = PointerArgs[i].first;
Type *AgTy = cast<PointerType>(PtrArg->getType())->getElementType();
Argument *PtrArg = PointerArgs[i].first;
Type *AgTy = cast<PointerType>(PtrArg->getType())->getElementType();
@@
-511,16
+511,16
@@
CallGraphNode *ArgPromotion::DoPromotion(Function *F,
// what the new GEP/Load instructions we are inserting look like.
std::map<IndicesVector, LoadInst*> OriginalLoads;
// what the new GEP/Load instructions we are inserting look like.
std::map<IndicesVector, LoadInst*> OriginalLoads;
- // Attribute
s
- Keep track of the parameter attributes for the arguments
+ // 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;
// that we are *not* promoting. For the ones that we do promote, the parameter
// attributes are lost
SmallVector<AttributeWithIndex, 8> AttributesVec;
- const Attr
ListPtr
&PAL = F->getAttributes();
+ const Attr
ibuteSet
&PAL = F->getAttributes();
// Add any return attributes.
// Add any return attributes.
- Attribute
s
attrs = PAL.getRetAttributes();
+ Attribute attrs = PAL.getRetAttributes();
if (attrs.hasAttributes())
if (attrs.hasAttributes())
- AttributesVec.push_back(AttributeWithIndex::get(Attr
ListPtr
::ReturnIndex,
+ AttributesVec.push_back(AttributeWithIndex::get(Attr
ibuteSet
::ReturnIndex,
attrs));
// First, determine the new argument list
attrs));
// First, determine the new argument list
@@
-537,7
+537,7
@@
CallGraphNode *ArgPromotion::DoPromotion(Function *F,
} else if (!ArgsToPromote.count(I)) {
// Unchanged argument
Params.push_back(I->getType());
} else if (!ArgsToPromote.count(I)) {
// Unchanged argument
Params.push_back(I->getType());
- Attribute
s
attrs = PAL.getParamAttributes(ArgIndex);
+ Attribute attrs = PAL.getParamAttributes(ArgIndex);
if (attrs.hasAttributes())
AttributesVec.push_back(AttributeWithIndex::get(Params.size(), attrs));
} else if (I->use_empty()) {
if (attrs.hasAttributes())
AttributesVec.push_back(AttributeWithIndex::get(Params.size(), attrs));
} else if (I->use_empty()) {
@@
-593,7
+593,7
@@
CallGraphNode *ArgPromotion::DoPromotion(Function *F,
// Add any function attributes.
attrs = PAL.getFnAttributes();
if (attrs.hasAttributes())
// Add any function attributes.
attrs = PAL.getFnAttributes();
if (attrs.hasAttributes())
- AttributesVec.push_back(AttributeWithIndex::get(Attr
ListPtr
::FunctionIndex,
+ AttributesVec.push_back(AttributeWithIndex::get(Attr
ibuteSet
::FunctionIndex,
attrs));
Type *RetTy = FTy->getReturnType();
attrs));
Type *RetTy = FTy->getReturnType();
@@
-611,7
+611,7
@@
CallGraphNode *ArgPromotion::DoPromotion(Function *F,
// Recompute the parameter attributes list based on the new arguments for
// the function.
// Recompute the parameter attributes list based on the new arguments for
// the function.
- NF->setAttributes(Attr
ListPtr
::get(F->getContext(), AttributesVec));
+ NF->setAttributes(Attr
ibuteSet
::get(F->getContext(), AttributesVec));
AttributesVec.clear();
F->getParent()->getFunctionList().insert(F, NF);
AttributesVec.clear();
F->getParent()->getFunctionList().insert(F, NF);
@@
-636,12
+636,12
@@
CallGraphNode *ArgPromotion::DoPromotion(Function *F,
CallSite CS(F->use_back());
assert(CS.getCalledFunction() == F);
Instruction *Call = CS.getInstruction();
CallSite CS(F->use_back());
assert(CS.getCalledFunction() == F);
Instruction *Call = CS.getInstruction();
- const Attr
ListPtr
&CallPAL = CS.getAttributes();
+ const Attr
ibuteSet
&CallPAL = CS.getAttributes();
// Add any return attributes.
// Add any return attributes.
- Attribute
s
attrs = CallPAL.getRetAttributes();
+ Attribute attrs = CallPAL.getRetAttributes();
if (attrs.hasAttributes())
if (attrs.hasAttributes())
- AttributesVec.push_back(AttributeWithIndex::get(Attr
ListPtr
::ReturnIndex,
+ AttributesVec.push_back(AttributeWithIndex::get(Attr
ibuteSet
::ReturnIndex,
attrs));
// Loop over the operands, inserting GEP and loads in the caller as
attrs));
// Loop over the operands, inserting GEP and loads in the caller as
@@
-653,7
+653,7
@@
CallGraphNode *ArgPromotion::DoPromotion(Function *F,
if (!ArgsToPromote.count(I) && !ByValArgsToTransform.count(I)) {
Args.push_back(*AI); // Unmodified argument
if (!ArgsToPromote.count(I) && !ByValArgsToTransform.count(I)) {
Args.push_back(*AI); // Unmodified argument
- Attribute
s
Attrs = CallPAL.getParamAttributes(ArgIndex);
+ Attribute Attrs = CallPAL.getParamAttributes(ArgIndex);
if (Attrs.hasAttributes())
AttributesVec.push_back(AttributeWithIndex::get(Args.size(), Attrs));
if (Attrs.hasAttributes())
AttributesVec.push_back(AttributeWithIndex::get(Args.size(), Attrs));
@@
-715,7
+715,7
@@
CallGraphNode *ArgPromotion::DoPromotion(Function *F,
// Push any varargs arguments on the list.
for (; AI != CS.arg_end(); ++AI, ++ArgIndex) {
Args.push_back(*AI);
// Push any varargs arguments on the list.
for (; AI != CS.arg_end(); ++AI, ++ArgIndex) {
Args.push_back(*AI);
- Attribute
s
Attrs = CallPAL.getParamAttributes(ArgIndex);
+ Attribute Attrs = CallPAL.getParamAttributes(ArgIndex);
if (Attrs.hasAttributes())
AttributesVec.push_back(AttributeWithIndex::get(Args.size(), Attrs));
}
if (Attrs.hasAttributes())
AttributesVec.push_back(AttributeWithIndex::get(Args.size(), Attrs));
}
@@
-723,7
+723,7
@@
CallGraphNode *ArgPromotion::DoPromotion(Function *F,
// Add any function attributes.
attrs = CallPAL.getFnAttributes();
if (attrs.hasAttributes())
// Add any function attributes.
attrs = CallPAL.getFnAttributes();
if (attrs.hasAttributes())
- AttributesVec.push_back(AttributeWithIndex::get(Attr
ListPtr
::FunctionIndex,
+ AttributesVec.push_back(AttributeWithIndex::get(Attr
ibuteSet
::FunctionIndex,
attrs));
Instruction *New;
attrs));
Instruction *New;
@@
-731,12
+731,12
@@
CallGraphNode *ArgPromotion::DoPromotion(Function *F,
New = InvokeInst::Create(NF, II->getNormalDest(), II->getUnwindDest(),
Args, "", Call);
cast<InvokeInst>(New)->setCallingConv(CS.getCallingConv());
New = InvokeInst::Create(NF, II->getNormalDest(), II->getUnwindDest(),
Args, "", Call);
cast<InvokeInst>(New)->setCallingConv(CS.getCallingConv());
- cast<InvokeInst>(New)->setAttributes(Attr
ListPtr
::get(II->getContext(),
+ cast<InvokeInst>(New)->setAttributes(Attr
ibuteSet
::get(II->getContext(),
AttributesVec));
} else {
New = CallInst::Create(NF, Args, "", Call);
cast<CallInst>(New)->setCallingConv(CS.getCallingConv());
AttributesVec));
} else {
New = CallInst::Create(NF, Args, "", Call);
cast<CallInst>(New)->setCallingConv(CS.getCallingConv());
- cast<CallInst>(New)->setAttributes(Attr
ListPtr
::get(New->getContext(),
+ cast<CallInst>(New)->setAttributes(Attr
ibuteSet
::get(New->getContext(),
AttributesVec));
if (cast<CallInst>(Call)->isTailCall())
cast<CallInst>(New)->setTailCall();
AttributesVec));
if (cast<CallInst>(Call)->isTailCall())
cast<CallInst>(New)->setTailCall();