[all-commits] [llvm/llvm-project] d7098f: De-templatify EmitCallArgs argument type checking, ...
Reid Kleckner via All-commits
all-commits at lists.llvm.org
Wed Dec 9 11:12:47 PST 2020
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: d7098ff29c58dd08ede8314818b7de7fd2fea4cc
https://github.com/llvm/llvm-project/commit/d7098ff29c58dd08ede8314818b7de7fd2fea4cc
Author: Reid Kleckner <rnk at google.com>
Date: 2020-12-09 (Wed, 09 Dec 2020)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGExprCXX.cpp
M clang/lib/CodeGen/CodeGenFunction.h
Log Message:
-----------
De-templatify EmitCallArgs argument type checking, NFCI
This template exists to abstract over FunctionPrototype and
ObjCMethodDecl, which have similar APIs for storing parameter types. In
place of a template, use a PointerUnion with two cases to handle this.
Hopefully this improves readability, since the type of the prototype is
easier to discover. This allows me to sink this code, which is mostly
assertions, out of the header file and into the cpp file. I can also
simplify the overloaded methods for computing isGenericMethod, and get
rid of the second EmitCallArgs overload.
Differential Revision: https://reviews.llvm.org/D92883
Commit: df282215d497e15104ae9e182e083cdfa0bae3c2
https://github.com/llvm/llvm-project/commit/df282215d497e15104ae9e182e083cdfa0bae3c2
Author: Reid Kleckner <rnk at google.com>
Date: 2020-12-09 (Wed, 09 Dec 2020)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
A clang/test/CodeGenCXX/windows-x86-swiftcall.cpp
Log Message:
-----------
Don't setup inalloca for swiftcc on i686-windows-msvc
Swiftcall does it's own target-independent argument type classification,
since it is not designed to be ABI compatible with anything local on the
target that isn't LLVM-based. This means it never uses inalloca.
However, we have duplicate logic for checking for inalloca parameters
that runs before call argument setup. This logic needs to know ahead of
time if inalloca will be used later, and we can't move the
CGFunctionInfo calculation earlier.
This change gets the calling convention from either the
FunctionProtoType or ObjCMethodDecl, checks if it is swift, and if so
skips the stackbase setup.
Depends on D92883.
Differential Revision: https://reviews.llvm.org/D92944
Compare: https://github.com/llvm/llvm-project/compare/199ec40e7bcc...df282215d497
More information about the All-commits
mailing list