More ABI API cleanup.
 - Lift CGFunctionInfo creation above ReturnTypeUsesSret and
   EmitFunction{Epi,Pro}log.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63553 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index 1bacff2..9033a65 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -70,6 +70,7 @@
   
   // Holds the Decl for the current function or method
   const Decl *CurFuncDecl;
+  const CGFunctionInfo *CurFnInfo;
   QualType FnRetTy;
   llvm::Function *CurFn;
 
@@ -219,13 +220,13 @@
   /// EmitFunctionProlog - Emit the target specific LLVM code to load
   /// the arguments for the given function. This is also responsible
   /// for naming the LLVM function arguments.
-  void EmitFunctionProlog(llvm::Function *Fn, QualType RetTy, 
+  void EmitFunctionProlog(const CGFunctionInfo &FI,
+                          llvm::Function *Fn,
                           const FunctionArgList &Args);
 
   /// EmitFunctionEpilog - Emit the target specific LLVM code to
   /// return the given temporary.
-  void EmitFunctionEpilog(QualType RetTy, 
-                          llvm::Value *ReturnValue);
+  void EmitFunctionEpilog(const CGFunctionInfo &FI, llvm::Value *ReturnValue);
 
   const llvm::Type *ConvertType(QualType T);
 
@@ -543,8 +544,8 @@
   /// given result type, and using the given argument list which
   /// specifies both the LLVM arguments and the types they were
   /// derived from.
-  RValue EmitCall(llvm::Value *Callee,
-                  const CGFunctionInfo &FnInfo,
+  RValue EmitCall(const CGFunctionInfo &FnInfo,
+                  llvm::Value *Callee,
                   const CallArgList &Args);
 
   RValue EmitCallExpr(const CallExpr *E);