Rename the version of CreateRet that's a convenience method for creating

multiple-valued return values, so that the name CreateRet is just for
creating plain ret statements.

llvm-svn: 54053
This commit is contained in:
Dan Gohman 2008-07-25 20:36:15 +00:00
parent cefa4df4c1
commit c28f2265a4

View 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");