[llvm-commits] [llvm-gcc-4.2] r49386 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Devang Patel
dpatel at apple.com
Tue Apr 8 09:48:04 PDT 2008
Author: dpatel
Date: Tue Apr 8 11:48:04 2008
New Revision: 49386
URL: http://llvm.org/viewvc/llvm-project?rev=49386&view=rev
Log:
Keep track of calls that return multiple values.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=49386&r1=49385&r2=49386&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Tue Apr 8 11:48:04 2008
@@ -2311,6 +2311,7 @@
Value *TheValue;
MemRef RetBuf;
bool isShadowRet;
+ bool isAggrRet;
FunctionCallArgumentConversion(SmallVector<Value*, 16> &ops,
const FunctionType *FnTy,
@@ -2318,7 +2319,8 @@
bool ReturnSlotOpt,
LLVMFoldingBuilder &b)
: CallOperands(ops), FTy(FnTy), DestLoc(destloc),
- useReturnSlot(ReturnSlotOpt), Builder(b), isShadowRet(false) { }
+ useReturnSlot(ReturnSlotOpt), Builder(b), isShadowRet(false),
+ isAggrRet(false) { }
// Push the address of an argument.
void pushAddress(Value *Loc) {
@@ -2367,6 +2369,7 @@
}
bool isShadowReturn() { return isShadowRet; }
+ bool isAggrReturn() { return isAggrRet; }
// EmitShadowResult - If the return result was redirected to a buffer,
// emit it now.
@@ -2406,6 +2409,7 @@
/// returns an aggregate value using multiple return values.
void HandleAggregateResultAsAggregate(const Type *AggrTy) {
// There is nothing to do here.
+ isAggrRet = true;
}
/// HandleAggregateShadowArgument - This callback is invoked if the function
More information about the llvm-commits
mailing list