[clang] [llvm] [docs] Drop stale "experimental" note for preserve_most (PR #214205)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 5 05:07:31 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-ir
Author: guyfischman
<details>
<summary>Changes</summary>
The LangRef and Clang attribute docs say preserve_most "will be used by a future version of the Objective-C runtime and should therefore still be considered experimental at this time." That note dates to the convention's introduction in 2014.
It's now used in the swift runtime (swiftlang/swift#<!-- -->85044), [linux kernel](https://github.com/torvalds/linux/blob/c21bb4193868a8de71fc4693fa741e195fdf5d86/include/linux/compiler_types.h#L139-L143), V8 (V8_PRESERVE_MOST), tcmalloc, and protobuf's upb.
Following the precedent of #<!-- -->158637 (which dropped "experimental" from the partial reduction intrinsics): this convention has been used in production for a while and is unlikely to change.
preserve_all is left untouched; its adoption story is much thinner, so its experimental note is arguably still doing honest work.
Addresses part of #<!-- -->178277.
---
Full diff: https://github.com/llvm/llvm-project/pull/214205.diff
2 Files Affected:
- (modified) clang/include/clang/Basic/AttrDocs.td (+5-7)
- (modified) llvm/docs/LangRef.md (+4-7)
``````````diff
diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td
index 65ccc83aac33f..90b73f7e094d1 100644
--- a/clang/include/clang/Basic/AttrDocs.td
+++ b/clang/include/clang/Basic/AttrDocs.td
@@ -6889,13 +6889,11 @@ rarely executed, whereas ``preserve_most`` function calls are intended to be
on the hot path and definitely executed a lot. Furthermore ``preserve_most``
doesn't prevent the inliner from inlining the function call.
-This calling convention will be used by a future version of the Objective-C
-runtime and should therefore still be considered experimental at this time.
-Although this convention was created to optimize certain runtime calls to
-the Objective-C runtime, it is not limited to this runtime and might be used
-by other runtimes in the future too. The current implementation only
-supports X86-64 and AArch64, but the intention is to support more architectures
-in the future.
+This convention was created to optimize certain runtime calls to the
+Objective-C runtime, but it is not limited to that runtime; it is also used by
+other runtimes and libraries, such as the Swift runtime and the Linux kernel.
+The current implementation only supports X86-64 and AArch64, but the intention
+is to support more architectures in the future.
}];
}
diff --git a/llvm/docs/LangRef.md b/llvm/docs/LangRef.md
index 6a3194271b838..5a18d9db4b403 100644
--- a/llvm/docs/LangRef.md
+++ b/llvm/docs/LangRef.md
@@ -432,13 +432,10 @@ added in the future:
on the hot path and definitely executed a lot. Furthermore `preserve_mostcc`
doesn't prevent the inliner from inlining the function call.
- This calling convention will be used by a future version of the Objective-C
- runtime and should therefore still be considered experimental at this time.
- Although this convention was created to optimize certain runtime calls to
- the Objective-C runtime, it is not limited to this runtime and might be used
- by other runtimes in the future too. The current implementation only
- supports X86-64, but the intention is to support more architectures in the
- future.
+ This convention was created to optimize certain runtime calls to the
+ Objective-C runtime, but it is not limited to that runtime; it is also used
+ by other runtimes and libraries, such as the Swift runtime and the Linux
+ kernel.
"`preserve_allcc`" - The `PreserveAll` calling convention
: This calling convention attempts to make the code in the caller even less
``````````
</details>
https://github.com/llvm/llvm-project/pull/214205
More information about the cfe-commits
mailing list