[PATCH] D131628: [LangRef] Add description for nocallback attribute
Daniel Thornburgh via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 15 14:12:58 PDT 2022
mysterymath added a comment.
In D131628#3724307 <https://reviews.llvm.org/D131628#3724307>, @jdoerfert wrote:
>> The linker must always drop nocallback.
>
> Yes, let's do that. We'll create a patch. Also for `inaccessiblememonly` and friends, see below.
If inaccessiblememonly is generated internally with the expectation of a per-translation-unit semantics, then it makes sense to summarily drop it.
But unless someone already has, we really should verify that __attribute__((leaf)) actually does have per-translation-unit semantics in GCC LTO, not per LTO-unit. I wouldn't be surprised if this feature predates LTO, and some kind of naive module merging in GCC may give it identical semantics to the one we have today.
There's even a case to be made for the LTO unit interpretation; it allows you to declare a function to effectively be a leaf if it can't call anything that could possible be included in the current LTO unit. This would allow pruning the reachability graph more thoroughly in LTO than the other interpretation, and I'd argue that this attribute is primarily useful for functions that are actually or approximately leaf functions.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D131628/new/
https://reviews.llvm.org/D131628
More information about the llvm-commits
mailing list