[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-18 Thread Shafik Yaghmour via cfe-commits

https://github.com/shafik edited 
https://github.com/llvm/llvm-project/pull/135861
___
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-18 Thread Shafik Yaghmour via cfe-commits


@@ -712,8 +713,7 @@ CodeGenTypes::arrangeBlockFunctionDeclaration(const 
FunctionProtoType *proto,
 const CGFunctionInfo &
 CodeGenTypes::arrangeBuiltinFunctionCall(QualType resultType,
  const CallArgList &args) {
-  // FIXME: Kill copy.

shafik wrote:

Did we actually fix the FIXMEs? They were removed but I don't functionally 
different code. Which makes sense considering the NFC label.

https://github.com/llvm/llvm-project/pull/135861
___
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-16 Thread Tom Honermann via cfe-commits

https://github.com/tahonermann closed 
https://github.com/llvm/llvm-project/pull/135861
___
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-16 Thread Erich Keane via cfe-commits

https://github.com/erichkeane approved this pull request.


https://github.com/llvm/llvm-project/pull/135861
___
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-16 Thread Aaron Ballman via cfe-commits

https://github.com/AaronBallman approved this pull request.

LGTM! We could do further coding style adjustments if we wanted (particularly 
around naming conventions), but I don't insist; this is still forward progress. 
Thank you!

https://github.com/llvm/llvm-project/pull/135861
___
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-15 Thread Tom Honermann via cfe-commits


@@ -199,15 +199,17 @@ static void appendParameterTypes(const CodeGenTypes &CGT,
   prefix.size());
 }
 
+using SmallExtParameterInfoList =

tahonermann wrote:

Done; I dropped the `Small` prefix.

With regard to the in-place size of 16, I'm guessing that was a spur of the 
moment pick that "felt right" way back when. I did look for other aliases of 
`SmallVector` for these types and that in-place size and didn't find any. There 
is a case of `SmallVector` elsewhere in the file, so it wasn't 
a blind default everywhere.

https://github.com/llvm/llvm-project/pull/135861
___
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-15 Thread Tom Honermann via cfe-commits

https://github.com/tahonermann updated 
https://github.com/llvm/llvm-project/pull/135861

>From f413b7eeb673812fb66b1465c885a34fe21d1fc6 Mon Sep 17 00:00:00 2001
From: Tom Honermann 
Date: Tue, 15 Apr 2025 14:25:06 -0700
Subject: [PATCH 1/2] [NFC][Clang] Introduce type aliases to replace use of
 auto in clang/lib/CodeGen/CGCall.cpp.

CGCall.cpp declares several functions with a return type that is an explicitly
spelled out specialization of SmallVector. Previously, `auto` was used in
several places to avoid repeating the long type name; a use that Clang
maintainers find unjustified. This change introduces type aliases and replaces
the existing uses of `auto` with the corresponding alias name.
---
 clang/lib/CodeGen/CGCall.cpp | 73 ++--
 1 file changed, 36 insertions(+), 37 deletions(-)

diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index b25cdf9523ae1..b5995023a213a 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -199,15 +199,17 @@ static void appendParameterTypes(const CodeGenTypes &CGT,
   prefix.size());
 }
 
+using SmallExtParameterInfoList =
+SmallVector;
+
 /// Arrange the LLVM function layout for a value of the given function
 /// type, on top of any implicit parameters already stored.
 static const CGFunctionInfo &
 arrangeLLVMFunctionInfo(CodeGenTypes &CGT, bool instanceMethod,
 SmallVectorImpl &prefix,
 CanQual FTP) {
-  SmallVector paramInfos;
+  SmallExtParameterInfoList paramInfos;
   RequiredArgs Required = RequiredArgs::forPrototypePlus(FTP, prefix.size());
-  // FIXME: Kill copy.
   appendParameterTypes(CGT, prefix, paramInfos, FTP);
   CanQualType resultType = FTP->getReturnType().getUnqualifiedType();
 
@@ -217,11 +219,13 @@ arrangeLLVMFunctionInfo(CodeGenTypes &CGT, bool 
instanceMethod,
  FTP->getExtInfo(), paramInfos, Required);
 }
 
+using SmallCanQualTypeList = SmallVector;
+
 /// Arrange the argument and result information for a value of the
 /// given freestanding function type.
 const CGFunctionInfo &
 CodeGenTypes::arrangeFreeFunctionType(CanQual FTP) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
   return ::arrangeLLVMFunctionInfo(*this, /*instanceMethod=*/false, argTypes,
FTP);
 }
@@ -319,7 +323,7 @@ const CGFunctionInfo &
 CodeGenTypes::arrangeCXXMethodType(const CXXRecordDecl *RD,
const FunctionProtoType *FTP,
const CXXMethodDecl *MD) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
 
   // Add the 'this' pointer.
   argTypes.push_back(DeriveThisType(RD, MD));
@@ -375,8 +379,8 @@ const CGFunctionInfo &
 CodeGenTypes::arrangeCXXStructorDeclaration(GlobalDecl GD) {
   auto *MD = cast(GD.getDecl());
 
-  SmallVector argTypes;
-  SmallVector paramInfos;
+  SmallCanQualTypeList argTypes;
+  SmallExtParameterInfoList paramInfos;
 
   const CXXRecordDecl *ThisType = getCXXABI().getThisArgumentTypeForMethod(GD);
   argTypes.push_back(DeriveThisType(ThisType, MD));
@@ -421,26 +425,26 @@ CodeGenTypes::arrangeCXXStructorDeclaration(GlobalDecl 
GD) {
  argTypes, extInfo, paramInfos, required);
 }
 
-static SmallVector
-getArgTypesForCall(ASTContext &ctx, const CallArgList &args) {
-  SmallVector argTypes;
+static SmallCanQualTypeList getArgTypesForCall(ASTContext &ctx,
+   const CallArgList &args) {
+  SmallCanQualTypeList argTypes;
   for (auto &arg : args)
 argTypes.push_back(ctx.getCanonicalParamType(arg.Ty));
   return argTypes;
 }
 
-static SmallVector
+static SmallCanQualTypeList
 getArgTypesForDeclaration(ASTContext &ctx, const FunctionArgList &args) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
   for (auto &arg : args)
 argTypes.push_back(ctx.getCanonicalParamType(arg->getType()));
   return argTypes;
 }
 
-static llvm::SmallVector
-getExtParameterInfosForCall(const FunctionProtoType *proto,
-unsigned prefixArgs, unsigned totalArgs) {
-  llvm::SmallVector result;
+static SmallExtParameterInfoList
+getExtParameterInfosForCall(const FunctionProtoType *proto, unsigned 
prefixArgs,
+unsigned totalArgs) {
+  SmallExtParameterInfoList result;
   if (proto->hasExtParameterInfos()) {
 addExtParameterInfosForCall(result, proto, prefixArgs, totalArgs);
   }
@@ -462,8 +466,7 @@ CodeGenTypes::arrangeCXXConstructorCall(const CallArgList 
&args,
 unsigned ExtraPrefixArgs,
 unsigned ExtraSuffixArgs,
 bool PassProtoArgs) {
-  // FIXME: Kill copy.
-  SmallVector ArgTypes;
+  SmallCanQualTypeList ArgTypes;
   for (const auto &Arg : args)
 ArgTypes.push_back(Context.getCanonicalParam

[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-15 Thread via cfe-commits

llvmbot wrote:




@llvm/pr-subscribers-clang-codegen

Author: Tom Honermann (tahonermann)


Changes

`CGCall.cpp` declares several functions with a return type that is an 
explicitly spelled out specialization of `SmallVector`. Previously, `auto` was 
used in several places to avoid repeating the long type name; a use that Clang 
maintainers find unjustified. This change introduces type aliases and replaces 
the existing uses of `auto` with the corresponding alias name.

---
Full diff: https://github.com/llvm/llvm-project/pull/135861.diff


1 Files Affected:

- (modified) clang/lib/CodeGen/CGCall.cpp (+36-37) 


``diff
diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index b25cdf9523ae1..b5995023a213a 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -199,15 +199,17 @@ static void appendParameterTypes(const CodeGenTypes &CGT,
   prefix.size());
 }
 
+using SmallExtParameterInfoList =
+SmallVector;
+
 /// Arrange the LLVM function layout for a value of the given function
 /// type, on top of any implicit parameters already stored.
 static const CGFunctionInfo &
 arrangeLLVMFunctionInfo(CodeGenTypes &CGT, bool instanceMethod,
 SmallVectorImpl &prefix,
 CanQual FTP) {
-  SmallVector paramInfos;
+  SmallExtParameterInfoList paramInfos;
   RequiredArgs Required = RequiredArgs::forPrototypePlus(FTP, prefix.size());
-  // FIXME: Kill copy.
   appendParameterTypes(CGT, prefix, paramInfos, FTP);
   CanQualType resultType = FTP->getReturnType().getUnqualifiedType();
 
@@ -217,11 +219,13 @@ arrangeLLVMFunctionInfo(CodeGenTypes &CGT, bool 
instanceMethod,
  FTP->getExtInfo(), paramInfos, Required);
 }
 
+using SmallCanQualTypeList = SmallVector;
+
 /// Arrange the argument and result information for a value of the
 /// given freestanding function type.
 const CGFunctionInfo &
 CodeGenTypes::arrangeFreeFunctionType(CanQual FTP) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
   return ::arrangeLLVMFunctionInfo(*this, /*instanceMethod=*/false, argTypes,
FTP);
 }
@@ -319,7 +323,7 @@ const CGFunctionInfo &
 CodeGenTypes::arrangeCXXMethodType(const CXXRecordDecl *RD,
const FunctionProtoType *FTP,
const CXXMethodDecl *MD) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
 
   // Add the 'this' pointer.
   argTypes.push_back(DeriveThisType(RD, MD));
@@ -375,8 +379,8 @@ const CGFunctionInfo &
 CodeGenTypes::arrangeCXXStructorDeclaration(GlobalDecl GD) {
   auto *MD = cast(GD.getDecl());
 
-  SmallVector argTypes;
-  SmallVector paramInfos;
+  SmallCanQualTypeList argTypes;
+  SmallExtParameterInfoList paramInfos;
 
   const CXXRecordDecl *ThisType = getCXXABI().getThisArgumentTypeForMethod(GD);
   argTypes.push_back(DeriveThisType(ThisType, MD));
@@ -421,26 +425,26 @@ CodeGenTypes::arrangeCXXStructorDeclaration(GlobalDecl 
GD) {
  argTypes, extInfo, paramInfos, required);
 }
 
-static SmallVector
-getArgTypesForCall(ASTContext &ctx, const CallArgList &args) {
-  SmallVector argTypes;
+static SmallCanQualTypeList getArgTypesForCall(ASTContext &ctx,
+   const CallArgList &args) {
+  SmallCanQualTypeList argTypes;
   for (auto &arg : args)
 argTypes.push_back(ctx.getCanonicalParamType(arg.Ty));
   return argTypes;
 }
 
-static SmallVector
+static SmallCanQualTypeList
 getArgTypesForDeclaration(ASTContext &ctx, const FunctionArgList &args) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
   for (auto &arg : args)
 argTypes.push_back(ctx.getCanonicalParamType(arg->getType()));
   return argTypes;
 }
 
-static llvm::SmallVector
-getExtParameterInfosForCall(const FunctionProtoType *proto,
-unsigned prefixArgs, unsigned totalArgs) {
-  llvm::SmallVector result;
+static SmallExtParameterInfoList
+getExtParameterInfosForCall(const FunctionProtoType *proto, unsigned 
prefixArgs,
+unsigned totalArgs) {
+  SmallExtParameterInfoList result;
   if (proto->hasExtParameterInfos()) {
 addExtParameterInfosForCall(result, proto, prefixArgs, totalArgs);
   }
@@ -462,8 +466,7 @@ CodeGenTypes::arrangeCXXConstructorCall(const CallArgList 
&args,
 unsigned ExtraPrefixArgs,
 unsigned ExtraSuffixArgs,
 bool PassProtoArgs) {
-  // FIXME: Kill copy.
-  SmallVector ArgTypes;
+  SmallCanQualTypeList ArgTypes;
   for (const auto &Arg : args)
 ArgTypes.push_back(Context.getCanonicalParamType(Arg.Ty));
 
@@ -483,7 +486,7 @@ CodeGenTypes::arrangeCXXConstructorCall(const CallArgList 
&args,
: Context.VoidTy;
 
   FunctionType::ExtInfo Info = FPT->ge

[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-15 Thread via cfe-commits

llvmbot wrote:




@llvm/pr-subscribers-clang

Author: Tom Honermann (tahonermann)


Changes

`CGCall.cpp` declares several functions with a return type that is an 
explicitly spelled out specialization of `SmallVector`. Previously, `auto` was 
used in several places to avoid repeating the long type name; a use that Clang 
maintainers find unjustified. This change introduces type aliases and replaces 
the existing uses of `auto` with the corresponding alias name.

---
Full diff: https://github.com/llvm/llvm-project/pull/135861.diff


1 Files Affected:

- (modified) clang/lib/CodeGen/CGCall.cpp (+36-37) 


``diff
diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index b25cdf9523ae1..b5995023a213a 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -199,15 +199,17 @@ static void appendParameterTypes(const CodeGenTypes &CGT,
   prefix.size());
 }
 
+using SmallExtParameterInfoList =
+SmallVector;
+
 /// Arrange the LLVM function layout for a value of the given function
 /// type, on top of any implicit parameters already stored.
 static const CGFunctionInfo &
 arrangeLLVMFunctionInfo(CodeGenTypes &CGT, bool instanceMethod,
 SmallVectorImpl &prefix,
 CanQual FTP) {
-  SmallVector paramInfos;
+  SmallExtParameterInfoList paramInfos;
   RequiredArgs Required = RequiredArgs::forPrototypePlus(FTP, prefix.size());
-  // FIXME: Kill copy.
   appendParameterTypes(CGT, prefix, paramInfos, FTP);
   CanQualType resultType = FTP->getReturnType().getUnqualifiedType();
 
@@ -217,11 +219,13 @@ arrangeLLVMFunctionInfo(CodeGenTypes &CGT, bool 
instanceMethod,
  FTP->getExtInfo(), paramInfos, Required);
 }
 
+using SmallCanQualTypeList = SmallVector;
+
 /// Arrange the argument and result information for a value of the
 /// given freestanding function type.
 const CGFunctionInfo &
 CodeGenTypes::arrangeFreeFunctionType(CanQual FTP) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
   return ::arrangeLLVMFunctionInfo(*this, /*instanceMethod=*/false, argTypes,
FTP);
 }
@@ -319,7 +323,7 @@ const CGFunctionInfo &
 CodeGenTypes::arrangeCXXMethodType(const CXXRecordDecl *RD,
const FunctionProtoType *FTP,
const CXXMethodDecl *MD) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
 
   // Add the 'this' pointer.
   argTypes.push_back(DeriveThisType(RD, MD));
@@ -375,8 +379,8 @@ const CGFunctionInfo &
 CodeGenTypes::arrangeCXXStructorDeclaration(GlobalDecl GD) {
   auto *MD = cast(GD.getDecl());
 
-  SmallVector argTypes;
-  SmallVector paramInfos;
+  SmallCanQualTypeList argTypes;
+  SmallExtParameterInfoList paramInfos;
 
   const CXXRecordDecl *ThisType = getCXXABI().getThisArgumentTypeForMethod(GD);
   argTypes.push_back(DeriveThisType(ThisType, MD));
@@ -421,26 +425,26 @@ CodeGenTypes::arrangeCXXStructorDeclaration(GlobalDecl 
GD) {
  argTypes, extInfo, paramInfos, required);
 }
 
-static SmallVector
-getArgTypesForCall(ASTContext &ctx, const CallArgList &args) {
-  SmallVector argTypes;
+static SmallCanQualTypeList getArgTypesForCall(ASTContext &ctx,
+   const CallArgList &args) {
+  SmallCanQualTypeList argTypes;
   for (auto &arg : args)
 argTypes.push_back(ctx.getCanonicalParamType(arg.Ty));
   return argTypes;
 }
 
-static SmallVector
+static SmallCanQualTypeList
 getArgTypesForDeclaration(ASTContext &ctx, const FunctionArgList &args) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
   for (auto &arg : args)
 argTypes.push_back(ctx.getCanonicalParamType(arg->getType()));
   return argTypes;
 }
 
-static llvm::SmallVector
-getExtParameterInfosForCall(const FunctionProtoType *proto,
-unsigned prefixArgs, unsigned totalArgs) {
-  llvm::SmallVector result;
+static SmallExtParameterInfoList
+getExtParameterInfosForCall(const FunctionProtoType *proto, unsigned 
prefixArgs,
+unsigned totalArgs) {
+  SmallExtParameterInfoList result;
   if (proto->hasExtParameterInfos()) {
 addExtParameterInfosForCall(result, proto, prefixArgs, totalArgs);
   }
@@ -462,8 +466,7 @@ CodeGenTypes::arrangeCXXConstructorCall(const CallArgList 
&args,
 unsigned ExtraPrefixArgs,
 unsigned ExtraSuffixArgs,
 bool PassProtoArgs) {
-  // FIXME: Kill copy.
-  SmallVector ArgTypes;
+  SmallCanQualTypeList ArgTypes;
   for (const auto &Arg : args)
 ArgTypes.push_back(Context.getCanonicalParamType(Arg.Ty));
 
@@ -483,7 +486,7 @@ CodeGenTypes::arrangeCXXConstructorCall(const CallArgList 
&args,
: Context.VoidTy;
 
   FunctionType::ExtInfo Info = FPT->getExtInfo

[clang] [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (PR #135861)

2025-04-15 Thread Tom Honermann via cfe-commits

https://github.com/tahonermann created 
https://github.com/llvm/llvm-project/pull/135861

`CGCall.cpp` declares several functions with a return type that is an 
explicitly spelled out specialization of `SmallVector`. Previously, `auto` was 
used in several places to avoid repeating the long type name; a use that Clang 
maintainers find unjustified. This change introduces type aliases and replaces 
the existing uses of `auto` with the corresponding alias name.

>From f413b7eeb673812fb66b1465c885a34fe21d1fc6 Mon Sep 17 00:00:00 2001
From: Tom Honermann 
Date: Tue, 15 Apr 2025 14:25:06 -0700
Subject: [PATCH] [NFC][Clang] Introduce type aliases to replace use of auto in
 clang/lib/CodeGen/CGCall.cpp.

CGCall.cpp declares several functions with a return type that is an explicitly
spelled out specialization of SmallVector. Previously, `auto` was used in
several places to avoid repeating the long type name; a use that Clang
maintainers find unjustified. This change introduces type aliases and replaces
the existing uses of `auto` with the corresponding alias name.
---
 clang/lib/CodeGen/CGCall.cpp | 73 ++--
 1 file changed, 36 insertions(+), 37 deletions(-)

diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index b25cdf9523ae1..b5995023a213a 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -199,15 +199,17 @@ static void appendParameterTypes(const CodeGenTypes &CGT,
   prefix.size());
 }
 
+using SmallExtParameterInfoList =
+SmallVector;
+
 /// Arrange the LLVM function layout for a value of the given function
 /// type, on top of any implicit parameters already stored.
 static const CGFunctionInfo &
 arrangeLLVMFunctionInfo(CodeGenTypes &CGT, bool instanceMethod,
 SmallVectorImpl &prefix,
 CanQual FTP) {
-  SmallVector paramInfos;
+  SmallExtParameterInfoList paramInfos;
   RequiredArgs Required = RequiredArgs::forPrototypePlus(FTP, prefix.size());
-  // FIXME: Kill copy.
   appendParameterTypes(CGT, prefix, paramInfos, FTP);
   CanQualType resultType = FTP->getReturnType().getUnqualifiedType();
 
@@ -217,11 +219,13 @@ arrangeLLVMFunctionInfo(CodeGenTypes &CGT, bool 
instanceMethod,
  FTP->getExtInfo(), paramInfos, Required);
 }
 
+using SmallCanQualTypeList = SmallVector;
+
 /// Arrange the argument and result information for a value of the
 /// given freestanding function type.
 const CGFunctionInfo &
 CodeGenTypes::arrangeFreeFunctionType(CanQual FTP) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
   return ::arrangeLLVMFunctionInfo(*this, /*instanceMethod=*/false, argTypes,
FTP);
 }
@@ -319,7 +323,7 @@ const CGFunctionInfo &
 CodeGenTypes::arrangeCXXMethodType(const CXXRecordDecl *RD,
const FunctionProtoType *FTP,
const CXXMethodDecl *MD) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
 
   // Add the 'this' pointer.
   argTypes.push_back(DeriveThisType(RD, MD));
@@ -375,8 +379,8 @@ const CGFunctionInfo &
 CodeGenTypes::arrangeCXXStructorDeclaration(GlobalDecl GD) {
   auto *MD = cast(GD.getDecl());
 
-  SmallVector argTypes;
-  SmallVector paramInfos;
+  SmallCanQualTypeList argTypes;
+  SmallExtParameterInfoList paramInfos;
 
   const CXXRecordDecl *ThisType = getCXXABI().getThisArgumentTypeForMethod(GD);
   argTypes.push_back(DeriveThisType(ThisType, MD));
@@ -421,26 +425,26 @@ CodeGenTypes::arrangeCXXStructorDeclaration(GlobalDecl 
GD) {
  argTypes, extInfo, paramInfos, required);
 }
 
-static SmallVector
-getArgTypesForCall(ASTContext &ctx, const CallArgList &args) {
-  SmallVector argTypes;
+static SmallCanQualTypeList getArgTypesForCall(ASTContext &ctx,
+   const CallArgList &args) {
+  SmallCanQualTypeList argTypes;
   for (auto &arg : args)
 argTypes.push_back(ctx.getCanonicalParamType(arg.Ty));
   return argTypes;
 }
 
-static SmallVector
+static SmallCanQualTypeList
 getArgTypesForDeclaration(ASTContext &ctx, const FunctionArgList &args) {
-  SmallVector argTypes;
+  SmallCanQualTypeList argTypes;
   for (auto &arg : args)
 argTypes.push_back(ctx.getCanonicalParamType(arg->getType()));
   return argTypes;
 }
 
-static llvm::SmallVector
-getExtParameterInfosForCall(const FunctionProtoType *proto,
-unsigned prefixArgs, unsigned totalArgs) {
-  llvm::SmallVector result;
+static SmallExtParameterInfoList
+getExtParameterInfosForCall(const FunctionProtoType *proto, unsigned 
prefixArgs,
+unsigned totalArgs) {
+  SmallExtParameterInfoList result;
   if (proto->hasExtParameterInfos()) {
 addExtParameterInfosForCall(result, proto, prefixArgs, totalArgs);
   }
@@ -462,8 +466,7 @@ CodeGenTypes::arrangeCXXConstructorCall(const CallArgLis