simplify
authorDevang Patel <dpatel@apple.com>
Mon, 10 Mar 2008 18:11:41 +0000 (18:11 +0000)
committerDevang Patel <dpatel@apple.com>
Mon, 10 Mar 2008 18:11:41 +0000 (18:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48160 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/UnifyFunctionExitNodes.cpp

index 7639d3f967f764daf1b5aed8a851b5ce09f4cd6a..9f129a85be6dd29b1c0316e36025b45a2aa1b274 100644 (file)
@@ -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);