Messages in this thread | | | Date | Wed, 2 Aug 2023 11:03:03 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH 1/3] Compiler attributes: Introduce the __preserve_most function attribute |
| |
On Wed, 2 Aug 2023 17:06:37 +0200 Marco Elver <elver@google.com> wrote:
> [1]: "On X86-64 and AArch64 targets, this attribute changes the calling > convention of a function. The preserve_most calling convention attempts > to make the code in the caller as unintrusive as possible. This > convention behaves identically to the C calling convention on how > arguments and return values are passed, but it uses a different set of > caller/callee-saved registers. This alleviates the burden of saving and > recovering a large register set before and after the call in the > caller." > > [1] https://clang.llvm.org/docs/AttributeReference.html#preserve-most > > Use of this attribute results in better code generation for calls to > very rarely called functions, such as error-reporting functions, or > rarely executed slow paths. > > Introduce the attribute to compiler_attributes.h.
That sounds fairly radical. And no changes are needed for assembly code or asm statements?
I'll add "LLVM" to the patch title to make it clear that gcc isn't affected.
| |