summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-02-07 19:31:33 +0000
committerChris Lattner <sabre@nondot.org>2007-02-07 19:31:33 +0000
commitbf6286ba0488ffb9efd85cd4e8ae30cdfda37681 (patch)
treeb7b87ec5d3a9eae086b565d8e97af25698c8a0ea /llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
parentdd602bcd08951f2b846fb5acd1e022af7c49700e (diff)
downloadbcm5719-llvm-bf6286ba0488ffb9efd85cd4e8ae30cdfda37681.tar.gz
bcm5719-llvm-bf6286ba0488ffb9efd85cd4e8ae30cdfda37681.zip
Fix Transforms/DeadArgElim/2007-02-07-FuncRename.ll, fallout from PR411.
This happened because deadargelim now causes VMCore to auto-rename every function that it hacks arguments out of. Because it hacks arguments out of functions in a non-deterministic order, this caused the resultant numbering to be nondet. The fix is to just be careful to not rename functions! llvm-svn: 34005
Diffstat (limited to 'llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp')
-rw-r--r--llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp b/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
index 149043d05ce..b39b2508d05 100644
--- a/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
+++ b/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
@@ -150,7 +150,8 @@ bool DAE::DeleteDeadVarargs(Function &Fn) {
unsigned NumArgs = Params.size();
// Create the new function body and insert it into the module...
- Function *NF = new Function(NFTy, Fn.getLinkage(), Fn.getName());
+ std::string Name = Fn.getName(); Fn.setName("");
+ Function *NF = new Function(NFTy, Fn.getLinkage(), Name);
NF->setCallingConv(Fn.getCallingConv());
Fn.getParent()->getFunctionList().insert(&Fn, NF);
@@ -508,7 +509,8 @@ void DAE::RemoveDeadArgumentsFromFunction(Function *F) {
FunctionType *NFTy = FunctionType::get(RetTy, Params, FTy->isVarArg());
// Create the new function body and insert it into the module...
- Function *NF = new Function(NFTy, F->getLinkage(), F->getName());
+ std::string Name = F->getName(); F->setName("");
+ Function *NF = new Function(NFTy, F->getLinkage(), Name);
NF->setCallingConv(F->getCallingConv());
F->getParent()->getFunctionList().insert(F, NF);
OpenPOWER on IntegriCloud