mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:50:30 +00:00
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:
parent
cefa4df4c1
commit
c28f2265a4
@ -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");
|
||||
|
Loading…
Reference in New Issue
Block a user