Author: Tom Honermann Date: 2025-04-16T11:28:09-04:00 New Revision: aca710ac3655fcd3f057edc1382ceec7fc58ef19
URL: https://github.com/llvm/llvm-project/commit/aca710ac3655fcd3f057edc1382ceec7fc58ef19 DIFF: https://github.com/llvm/llvm-project/commit/aca710ac3655fcd3f057edc1382ceec7fc58ef19.diff LOG: [NFC][Clang] Introduce type aliases to replace use of auto in clang/lib/CodeGen/CGCall.cpp. (#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. Added: Modified: clang/lib/CodeGen/CGCall.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp index b25cdf9523ae1..bc1035163a8eb 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 ExtParameterInfoList = + SmallVector<FunctionProtoType::ExtParameterInfo, 16>; + /// 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<CanQualType> &prefix, CanQual<FunctionProtoType> FTP) { - SmallVector<FunctionProtoType::ExtParameterInfo, 16> paramInfos; + ExtParameterInfoList 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 CanQualTypeList = SmallVector<CanQualType, 16>; + /// Arrange the argument and result information for a value of the /// given freestanding function type. const CGFunctionInfo & CodeGenTypes::arrangeFreeFunctionType(CanQual<FunctionProtoType> FTP) { - SmallVector<CanQualType, 16> argTypes; + CanQualTypeList 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<CanQualType, 16> argTypes; + CanQualTypeList argTypes; // Add the 'this' pointer. argTypes.push_back(DeriveThisType(RD, MD)); @@ -375,8 +379,8 @@ const CGFunctionInfo & CodeGenTypes::arrangeCXXStructorDeclaration(GlobalDecl GD) { auto *MD = cast<CXXMethodDecl>(GD.getDecl()); - SmallVector<CanQualType, 16> argTypes; - SmallVector<FunctionProtoType::ExtParameterInfo, 16> paramInfos; + CanQualTypeList argTypes; + ExtParameterInfoList 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<CanQualType, 16> -getArgTypesForCall(ASTContext &ctx, const CallArgList &args) { - SmallVector<CanQualType, 16> argTypes; +static CanQualTypeList getArgTypesForCall(ASTContext &ctx, + const CallArgList &args) { + CanQualTypeList argTypes; for (auto &arg : args) argTypes.push_back(ctx.getCanonicalParamType(arg.Ty)); return argTypes; } -static SmallVector<CanQualType, 16> -getArgTypesForDeclaration(ASTContext &ctx, const FunctionArgList &args) { - SmallVector<CanQualType, 16> argTypes; +static CanQualTypeList getArgTypesForDeclaration(ASTContext &ctx, + const FunctionArgList &args) { + CanQualTypeList argTypes; for (auto &arg : args) argTypes.push_back(ctx.getCanonicalParamType(arg->getType())); return argTypes; } -static llvm::SmallVector<FunctionProtoType::ExtParameterInfo, 16> -getExtParameterInfosForCall(const FunctionProtoType *proto, - unsigned prefixArgs, unsigned totalArgs) { - llvm::SmallVector<FunctionProtoType::ExtParameterInfo, 16> result; +static ExtParameterInfoList +getExtParameterInfosForCall(const FunctionProtoType *proto, unsigned prefixArgs, + unsigned totalArgs) { + ExtParameterInfoList 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<CanQualType, 16> ArgTypes; + CanQualTypeList 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(); - llvm::SmallVector<FunctionProtoType::ExtParameterInfo, 16> ParamInfos; + ExtParameterInfoList ParamInfos; // If the prototype args are elided, we should only have ABI-specific args, // which never have param info. if (PassProtoArgs && FPT->hasExtParameterInfos()) { @@ -546,13 +549,11 @@ CodeGenTypes::arrangeObjCMethodDeclaration(const ObjCMethodDecl *MD) { const CGFunctionInfo & CodeGenTypes::arrangeObjCMessageSendSignature(const ObjCMethodDecl *MD, QualType receiverType) { - SmallVector<CanQualType, 16> argTys; - SmallVector<FunctionProtoType::ExtParameterInfo, 4> extParamInfos( - MD->isDirectMethod() ? 1 : 2); + CanQualTypeList argTys; + ExtParameterInfoList extParamInfos(MD->isDirectMethod() ? 1 : 2); argTys.push_back(Context.getCanonicalParamType(receiverType)); if (!MD->isDirectMethod()) argTys.push_back(Context.getCanonicalParamType(Context.getObjCSelType())); - // FIXME: Kill copy? for (const auto *I : MD->parameters()) { argTys.push_back(Context.getCanonicalParamType(I->getType())); auto extParamInfo = FunctionProtoType::ExtParameterInfo().withIsNoEscape( @@ -579,7 +580,7 @@ CodeGenTypes::arrangeObjCMessageSendSignature(const ObjCMethodDecl *MD, const CGFunctionInfo & CodeGenTypes::arrangeUnprototypedObjCMessageSend(QualType returnType, const CallArgList &args) { - auto argTypes = getArgTypesForCall(Context, args); + CanQualTypeList argTypes = getArgTypesForCall(Context, args); FunctionType::ExtInfo einfo; return arrangeLLVMFunctionInfo(GetReturnType(returnType), FnInfoOpts::None, @@ -641,7 +642,7 @@ arrangeFreeFunctionLikeCall(CodeGenTypes &CGT, bool chainCall) { assert(args.size() >= numExtraRequiredArgs); - llvm::SmallVector<FunctionProtoType::ExtParameterInfo, 16> paramInfos; + ExtParameterInfoList paramInfos; // In most cases, there are no optional arguments. RequiredArgs required = RequiredArgs::All; @@ -666,8 +667,7 @@ arrangeFreeFunctionLikeCall(CodeGenTypes &CGT, required = RequiredArgs(args.size()); } - // FIXME: Kill copy. - SmallVector<CanQualType, 16> argTypes; + CanQualTypeList argTypes; for (const auto &arg : args) argTypes.push_back(CGT.getContext().getCanonicalParamType(arg.Ty)); FnInfoOpts opts = chainCall ? FnInfoOpts::IsChainCall : FnInfoOpts::None; @@ -700,8 +700,9 @@ CodeGenTypes::arrangeBlockFunctionCall(const CallArgList &args, const CGFunctionInfo & CodeGenTypes::arrangeBlockFunctionDeclaration(const FunctionProtoType *proto, const FunctionArgList ¶ms) { - auto paramInfos = getExtParameterInfosForCall(proto, 1, params.size()); - auto argTypes = getArgTypesForDeclaration(Context, params); + ExtParameterInfoList paramInfos = + getExtParameterInfosForCall(proto, 1, params.size()); + CanQualTypeList argTypes = getArgTypesForDeclaration(Context, params); return arrangeLLVMFunctionInfo(GetReturnType(proto->getReturnType()), FnInfoOpts::None, argTypes, @@ -712,8 +713,7 @@ CodeGenTypes::arrangeBlockFunctionDeclaration(const FunctionProtoType *proto, const CGFunctionInfo & CodeGenTypes::arrangeBuiltinFunctionCall(QualType resultType, const CallArgList &args) { - // FIXME: Kill copy. - SmallVector<CanQualType, 16> argTypes; + CanQualTypeList argTypes; for (const auto &Arg : args) argTypes.push_back(Context.getCanonicalParamType(Arg.Ty)); return arrangeLLVMFunctionInfo(GetReturnType(resultType), FnInfoOpts::None, @@ -724,7 +724,7 @@ CodeGenTypes::arrangeBuiltinFunctionCall(QualType resultType, const CGFunctionInfo & CodeGenTypes::arrangeBuiltinFunctionDeclaration(QualType resultType, const FunctionArgList &args) { - auto argTypes = getArgTypesForDeclaration(Context, args); + CanQualTypeList argTypes = getArgTypesForDeclaration(Context, args); return arrangeLLVMFunctionInfo(GetReturnType(resultType), FnInfoOpts::None, argTypes, FunctionType::ExtInfo(), {}, @@ -752,11 +752,10 @@ CodeGenTypes::arrangeCXXMethodCall(const CallArgList &args, "Emitting a call with less args than the required prefix?"); // Add one to account for `this`. It's a bit awkward here, but we don't count // `this` in similar places elsewhere. - auto paramInfos = - getExtParameterInfosForCall(proto, numPrefixArgs + 1, args.size()); + ExtParameterInfoList paramInfos = + getExtParameterInfosForCall(proto, numPrefixArgs + 1, args.size()); - // FIXME: Kill copy. - auto argTypes = getArgTypesForCall(Context, args); + CanQualTypeList argTypes = getArgTypesForCall(Context, args); FunctionType::ExtInfo info = proto->getExtInfo(); return arrangeLLVMFunctionInfo(GetReturnType(proto->getReturnType()), @@ -777,14 +776,14 @@ CodeGenTypes::arrangeCall(const CGFunctionInfo &signature, if (signature.arg_size() == args.size()) return signature; - SmallVector<FunctionProtoType::ExtParameterInfo, 16> paramInfos; + ExtParameterInfoList paramInfos; auto sigParamInfos = signature.getExtParameterInfos(); if (!sigParamInfos.empty()) { paramInfos.append(sigParamInfos.begin(), sigParamInfos.end()); paramInfos.resize(args.size()); } - auto argTypes = getArgTypesForCall(Context, args); + CanQualTypeList argTypes = getArgTypesForCall(Context, args); assert(signature.getRequiredArgs().allowsOptionalArgs()); FnInfoOpts opts = FnInfoOpts::None; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits