Timm =?utf-8?q?Bäder?= <[email protected]>,
Timm =?utf-8?q?Bäder?= <[email protected]>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/[email protected]>


https://github.com/Sirraide commented:

This is definitely an interesting idea, especially seeing as it lets us get rid 
of the `#pragma optimize("", on)` jank. Have you tested this with different 
compilers to see how they optimise this (as in, build Clang itself w/ e.g. GCC 
or MSVC)?

Speaking of other compilers, `preserve_none` as a calling convention is 
probably a good idea to keep more state in registers, but I think we should 
spell it `[[clang::preserve_none]]`, and it should be behind a macro since GCC 
doesn’t support it. 

As for forcing tail calls, GCC does support `[[clang::musttail]]`, but for 
MSVC, we should probably spell it `[[msvc::musttail]]`, and another issue would 
be that tail calls are apparently [only supported when optimisations are 
enabled](https://learn.microsoft.com/en-us/cpp/cpp/attributes?view=msvc-170#msvcmusttail):

> the numbers on the compile-time tracker are slightly worse

>From what I can tell it’s mainly just the file size that’s worse; the other 
>numbers mainly just look like noise to me.

https://github.com/llvm/llvm-project/pull/173756
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to