[llvm] r254737 - [CXX TLS calling convention] Add CXX TLS calling convention.

Manman Ren via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 4 14:11:56 PST 2015


On Fri, Dec 4, 2015 at 2:05 PM, James Y Knight <jyknight at google.com> wrote:

> On Dec 4, 2015, at 4:44 PM, Joerg Sonnenberger via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
> > On Fri, Dec 04, 2015 at 04:35:14PM -0500, James Y Knight wrote:
> >> On Dec 4, 2015, at 2:32 PM, Joerg Sonnenberger via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
> >>> On Fri, Dec 04, 2015 at 05:40:13PM -0000, Manman Ren via llvm-commits
> wrote:
> >>>> Author: mren
> >>>> Date: Fri Dec  4 11:40:13 2015
> >>>> New Revision: 254737
> >>>>
> >>>> URL: http://llvm.org/viewvc/llvm-project?rev=254737&view=rev
> >>>> Log:
> >>>> [CXX TLS calling convention] Add CXX TLS calling convention.
> >>>
> >>> What the motivation for this? Is there any ABI documentation for it?
> >>
> >>
> >> This seems very much like an x86_64-Darwin specific calling convention,
> >> which is masquerading as a generic calling convention. Why not call it
> >> what it actually is, instead of pretending it's something generically
> useful?
> >
> > I'm not sure if it is Darwin-specific, but one of the things I wonder
> > about is the "CXX" part in the name. If it is for use by dynamic TLS
> > initialisers, there is nothing C++ specific about it.
>
>
> It seems to me darwin-specific, because the stated reason for adding it is
> that Darwin has pre-existing functions using this particular calling
> convention. It's otherwise exactly the same intent as preserve_mostcc,
> right? (The difference being that on x86_64, this preserves all GPRs except
> RAX and RDI, and preserve_most preserves all GPRs except R11).


ELF also has its own C-style implementation, which can be different from
preserve_most.
I saw CSR_AArch64_TLS_ELF in AArch64CallingConvention.td.

I don't see any precedence of putting a platform name in the name of a
calling convention, it is either language specific or target specific.
(it may exist, but I didn't notice :)

Cheers,
Manman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151204/feaaaaea/attachment.html>


More information about the llvm-commits mailing list