diff options
| author | Dan Gohman <gohman@apple.com> | 2008-07-25 20:36:15 +0000 |
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2008-07-25 20:36:15 +0000 |
| commit | 685fd8081d98304db8231d9fae27479f9512c588 (patch) | |
| tree | 29388ab90c6ea5bce449e367c285b9b07fa421e6 | |
| parent | 7fb92dbf474909eaaafc866df70dc986919dcdee (diff) | |
| download | bcm5719-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.h | 13 |
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"); |

