Rename the version of CreateRet that's a convenience method for creating
authorDan Gohman <gohman@apple.com>
Fri, 25 Jul 2008 20:36:15 +0000 (20:36 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 25 Jul 2008 20:36:15 +0000 (20:36 +0000)
multiple-valued return values, so that the name CreateRet is just for
creating plain ret statements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54053 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/IRBuilder.h

index 9cc1d903f0f172b7c39fb8f4f4a11630e792779f..c316f57268df9c4954078e779016399f04c8c465 100644 (file)
@@ -101,12 +101,15 @@ public:
     return Insert(ReturnInst::Create(V));
   }
 
-  ReturnInst *CreateRet(Value * const* retVals, unsigned N) {
+  /// CreateAggregateRet - Create a sequence of N insertvalue instructions,
+  /// with one Value from the retVals array each, that build a aggregate
+  /// return value one value at a time, and a ret instruction to return
+  /// the resulting aggregate value. This is a convenience function for
+  /// code that uses aggregate return values as a vehicle for having
+  /// multiple return values.
+  ///
+  ReturnInst *CreateAggregateRet(Value * const* retVals, unsigned N) {
     const Type *RetType = BB->getParent()->getReturnType();
-    if (N == 0 && RetType == Type::VoidTy)
-      return CreateRetVoid();
-    if (N == 1 && retVals[0]->getType() == RetType)
-      return Insert(ReturnInst::Create(retVals[0]));
     Value *V = UndefValue::get(RetType);
     for (unsigned i = 0; i != N; ++i)
       V = CreateInsertValue(V, retVals[i], i, "mrv");