summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-07-25 20:36:15 +0000
committerDan Gohman <gohman@apple.com>2008-07-25 20:36:15 +0000
commit685fd8081d98304db8231d9fae27479f9512c588 (patch)
tree29388ab90c6ea5bce449e367c285b9b07fa421e6
parent7fb92dbf474909eaaafc866df70dc986919dcdee (diff)
downloadbcm5719-llvm-685fd8081d98304db8231d9fae27479f9512c588.tar.gz
bcm5719-llvm-685fd8081d98304db8231d9fae27479f9512c588.zip
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
-rw-r--r--llvm/include/llvm/Support/IRBuilder.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/llvm/include/llvm/Support/IRBuilder.h b/llvm/include/llvm/Support/IRBuilder.h
index 9cc1d903f0f..c316f57268d 100644
--- a/llvm/include/llvm/Support/IRBuilder.h
+++ b/llvm/include/llvm/Support/IRBuilder.h
@@ -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");
OpenPOWER on IntegriCloud