[PATCH] D35259: Complex Long Double classification In RegCall calling convention

2017-07-21 Thread Erich Keane via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL308769: Complex Long Double classification In RegCall calling convention (authored by erichkeane). Changed prior to commit: https://reviews.llvm.org/D35259?vs=107667=107696#toc Repository: rL LLVM

[PATCH] D35259: Complex Long Double classification In RegCall calling convention

2017-07-21 Thread Reid Kleckner via Phabricator via cfe-commits
rnk accepted this revision. rnk added a comment. This revision is now accepted and ready to land. lgtm https://reviews.llvm.org/D35259 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D35259: Complex Long Double classification In RegCall calling convention

2017-07-21 Thread Elizabeth Andrews via Phabricator via cfe-commits
eandrews updated this revision to Diff 107667. eandrews added a comment. Regcall-specific checks for Lin64 now occur only if CXXABI returns false. An existing test has also been modified to verify behavior with non trivial destructors. https://reviews.llvm.org/D35259 Files:

[PATCH] D35259: Complex Long Double classification In RegCall calling convention

2017-07-19 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added inline comments. Comment at: lib/CodeGen/TargetInfo.cpp:3516 + // calling convention is used. if (IsRegCall && FI.getReturnType()->getTypePtr()->isRecordType() && !FI.getReturnType()->getTypePtr()->isUnionType()) { This is incorrect. We

[PATCH] D35259: Complex Long Double classification In RegCall calling convention

2017-07-19 Thread Elizabeth Andrews via Phabricator via cfe-commits
eandrews updated this revision to Diff 107343. eandrews added a comment. As per revision comments, I moved the condition for extended precision floating type to isX86VectorTypeForVectorCall. This update will now alter behavior for complex long double type under vectorcall calling convention as

[PATCH] D35259: Complex Long Double classification In RegCall calling convention

2017-07-11 Thread Elizabeth Andrews via Phabricator via cfe-commits
eandrews added a comment. In https://reviews.llvm.org/D35259#805415, @erichkeane wrote: > In https://reviews.llvm.org/D35259#805409, @rnk wrote: > > > In https://reviews.llvm.org/D35259#805284, @erichkeane wrote: > > > > > Oren discovered this miss to the original implementation. I'd reviewed

[PATCH] D35259: Complex Long Double classification In RegCall calling convention

2017-07-11 Thread Erich Keane via Phabricator via cfe-commits
erichkeane added a comment. In https://reviews.llvm.org/D35259#805409, @rnk wrote: > In https://reviews.llvm.org/D35259#805284, @erichkeane wrote: > > > Oren discovered this miss to the original implementation. I'd reviewed > > this internally quite a bit. > > > > The reason for the Win32ABI

[PATCH] D35259: Complex Long Double classification In RegCall calling convention

2017-07-11 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added a comment. In https://reviews.llvm.org/D35259#805284, @erichkeane wrote: > Oren discovered this miss to the original implementation. I'd reviewed this > internally quite a bit. > > The reason for the Win32ABI test is that MSVC 'long double' is actually small > enough for SSE

[PATCH] D35259: Complex Long Double classification In RegCall calling convention

2017-07-11 Thread Erich Keane via Phabricator via cfe-commits
erichkeane added a comment. Oren discovered this miss to the original implementation. I'd reviewed this internally quite a bit. The reason for the Win32ABI test is that MSVC 'long double' is actually small enough for SSE registers in this case. I DO now (looking again, sorry Elizabeth)

[PATCH] D35259: Complex Long Double classification In RegCall calling convention

2017-07-11 Thread Elizabeth Andrews via Phabricator via cfe-commits
eandrews created this revision. This change is part of the RegCall calling convention support for LLVM. Existing RegCall implementation was extended to include correct handling of Complex Long Double type. Complex long double types should be returned/passed in memory and not register stack.