Refactor handling of calls:
 - Added CodeGenFunction::EmitCall which just takes the callee, return
   type, and a list of (Value*,QualType) pairs.
 - Added CodeGenFunction::EmitCallArg which handles emitting code for
   a call argument and turning it into an appropriate
   (Value*,QualType) pair.
 - Changed Objective-C runtime interface so that the actual emission
   of arguments for message sends is (once again) done in the code to
   emit a message send.

No intended functionality change, this is prep work for better ABI
support and for Objective-C property setter support.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55560 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index d1f3a6a..e00c665 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -299,6 +299,12 @@
   //                         Scalar Expression Emission
   //===--------------------------------------------------------------------===//
 
+  typedef llvm::SmallVector<std::pair<llvm::Value*, QualType>, 16> CallArgList;
+  void EmitCallArg(const Expr *E, CallArgList &Args);
+  RValue EmitCall(llvm::Value *Callee,
+                  QualType ResultType,
+                  const CallArgList &Args);
+
   RValue EmitCallExpr(const CallExpr *E);
 
   RValue EmitCallExpr(Expr *FnExpr, CallExpr::const_arg_iterator ArgBeg,
@@ -308,13 +314,6 @@
                       CallExpr::const_arg_iterator ArgBeg,
                       CallExpr::const_arg_iterator ArgEnd);
   
-  RValue EmitCallExprExt(llvm::Value *Callee, 
-                         QualType ResultType,
-                         CallExpr::const_arg_iterator ArgBeg,
-                         CallExpr::const_arg_iterator ArgEnd,
-                         llvm::Value **ExtraArgs,
-                         unsigned NumExtraArgs);
-  
   RValue EmitBuiltinExpr(unsigned BuiltinID, const CallExpr *E);
 
   llvm::Value *EmitX86BuiltinExpr(unsigned BuiltinID, const CallExpr *E);