Change CodeGen to emit calls using (RValue,Type) list:
 - Add CodeGenFunction::EmitAnyExprToTemp
   o Like EmitAnyExpr, but emits aggregates to a temporary location if
     none is available. Seems like this should be simpler (even aside
     from using first class aggregates).

 - Killed CodeGenFunction::EmitCallArg (just append the pair)

 - Conversion of RValues to actual call arguments is now isolated in
   CodeGenFunction::EmitCall.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55970 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGCall.h b/lib/CodeGen/CGCall.h
index b4e8d1f..78a83a8 100644
--- a/lib/CodeGen/CGCall.h
+++ b/lib/CodeGen/CGCall.h
@@ -17,6 +17,8 @@
 
 #include "clang/AST/Type.h"
 
+#include "CGValue.h"
+
 namespace llvm {
   class Function;
   struct ParamAttrsWithIndex;
@@ -36,7 +38,7 @@
 
   /// CallArgList - Type for representing both the value and type of
   /// arguments in a call.
-  typedef llvm::SmallVector<std::pair<llvm::Value*, QualType>, 16> CallArgList;
+  typedef llvm::SmallVector<std::pair<RValue, QualType>, 16> CallArgList;
 
   /// CGFunctionInfo - Class to encapsulate the information about a
   /// function definition.