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 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
