This revision was automatically updated to reflect the committed changes.
Closed by commit rL247941: Support __builtin_ms_va_list. (authored by cdavis).
Changed prior to commit:
http://reviews.llvm.org/D1623?vs=34728&id=35036#toc
Repository:
rL LLVM
http://reviews.llvm.org/D1623
Files:
cf
rnk accepted this revision.
rnk added a comment.
This revision is now accepted and ready to land.
I think this is ready.
http://reviews.llvm.org/D1623
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/list
cdavis5x added a comment.
Ping...
http://reviews.llvm.org/D1623
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
cdavis5x added inline comments.
Comment at: lib/CodeGen/CGCall.cpp:3598
@@ -3599,1 +3597,3 @@
+Address CodeGenFunction::EmitVAArg(Address VAListAddr, QualType Ty, bool IsMS)
{
+ return CGM.getTypes().getABIInfo().EmitVAArg(*this, VAListAddr, Ty, IsMS);
}
rjmcca
cdavis5x updated this revision to Diff 34728.
cdavis5x added a comment.
Address review comments.
- Pull out `va_arg` emission on `__builtin_ms_va_arg` to its own method on
`ABIInfo`. That way, ABI implementers don't need to care that this extension
even exists.
- Attempt to push repeated `va_ar
rjmccall added a comment.
This is a kindof weird extension conceptually. "Emulate the C ABI that
Microsoft would use on the current architecture"? I guess we're lucky that
they never support two different C ABIs on the same ISA. But okay, whatever,
it's a thing.
A couple comments:
===
rsmith added inline comments.
Comment at: lib/Sema/SemaExpr.cpp:11664-11672
@@ -11662,1 +11663,11 @@
+
+ // It might be a __builtin_ms_va_list.
+ if (!E->isTypeDependent() && Context.getTargetInfo().hasBuiltinMSVaList()) {
+QualType MSVaListType = Context.getBuiltinMSVaListT
rnk added inline comments.
Comment at: lib/CodeGen/CGCall.cpp:3598
@@ -3599,1 +3597,3 @@
+Address CodeGenFunction::EmitVAArg(Address VAListAddr, QualType Ty, bool IsMS)
{
+ return CGM.getTypes().getABIInfo().EmitVAArg(*this, VAListAddr, Ty, IsMS);
}
I think kee
cdavis5x updated this revision to Diff 34415.
cdavis5x added a comment.
- Rebase onto http://reviews.llvm.org/rL247238.
- Run `clang-format` on this patch.
- Push `va_arg` emission down into the `ABIInfo` hierarchy.
I threaded the `IsMS` parameter from the `VAArgExpr` through the
`EmitVAArg` meth
cdavis5x added inline comments.
Comment at: include/clang/AST/Expr.h:3709
@@ -3708,3 +3708,3 @@
VAArgExpr(SourceLocation BLoc, Expr* e, TypeSourceInfo *TInfo,
-SourceLocation RPLoc, QualType t)
+SourceLocation RPLoc, QualType t, bool IsMS = false)
:
cdavis5x updated this revision to Diff 34012.
cdavis5x added a comment.
Address @rsmith's comments.
http://reviews.llvm.org/D1623
Files:
include/clang/AST/ASTContext.h
include/clang/AST/Expr.h
include/clang/Basic/BuiltinsX86.def
include/clang/Basic/DiagnosticSemaKinds.td
include/clang
rsmith added inline comments.
Comment at: lib/CodeGen/CGExprScalar.cpp:3387-3392
@@ -3386,4 +3386,8 @@
- llvm::Value *ArgValue = CGF.EmitVAListRef(VE->getSubExpr());
- llvm::Value *ArgPtr = CGF.EmitVAArg(ArgValue, VE->getType());
+ llvm::Value *ArgValue = VE->isMicrosoftABI()
rsmith added inline comments.
Comment at: include/clang/AST/Expr.h:3709
@@ -3708,3 +3708,3 @@
VAArgExpr(SourceLocation BLoc, Expr* e, TypeSourceInfo *TInfo,
-SourceLocation RPLoc, QualType t)
+SourceLocation RPLoc, QualType t, bool IsMS = false)
: E
cdavis5x updated this revision to Diff 33490.
cdavis5x added a comment.
- Rebase onto http://reviews.llvm.org/rL246348.
- Register the `__builtin_ms_va_list` predef decl. Fixes a nasty interaction
with modules.
- Mark `__builtin_ms_va_start` builtin as manually type-checked.
http://reviews.llvm
14 matches
Mail list logo