[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