summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2008-03-10 18:11:41 +0000
committerDevang Patel <dpatel@apple.com>2008-03-10 18:11:41 +0000
commitc0325b2040405629e8f181caa3377bae252572aa (patch)
tree7264cf81b2a57e4a66997a10afa0554472915480 /llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
parent94961bd37c49a9a0e29f68a09b6ef17ce7a73ed2 (diff)
downloadbcm5719-llvm-c0325b2040405629e8f181caa3377bae252572aa.tar.gz
bcm5719-llvm-c0325b2040405629e8f181caa3377bae252572aa.zip
simplify
llvm-svn: 48160
Diffstat (limited to 'llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp b/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
index 7639d3f967f..9f129a85be6 100644
--- a/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
+++ b/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
@@ -21,6 +21,7 @@
#include "llvm/Instructions.h"
#include "llvm/Type.h"
#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/StringExtras.h"
using namespace llvm;
char UnifyFunctionExitNodes::ID = 0;
@@ -116,9 +117,10 @@ bool UnifyFunctionExitNodes::runOnFunction(Function &F) {
if (NumRetVals == 0)
new ReturnInst(NULL, NewRetBlock);
else if (const StructType *STy = dyn_cast<StructType>(F.getReturnType())) {
+ Instruction *InsertPt = NewRetBlock->getFirstNonPHI();
for (unsigned i = 0; i < NumRetVals; ++i) {
- PHINode *PN = new PHINode(STy->getElementType(i), "UnifiedRetVal");
- NewRetBlock->getInstList().push_back(PN);
+ PHINode *PN = new PHINode(STy->getElementType(i), "UnifiedRetVal."
+ + utostr(i), InsertPt);
Phis.push_back(PN);
}
new ReturnInst(&Phis[0], NumRetVals);
OpenPOWER on IntegriCloud