[libc-commits] [libc] [libc][docs] codify Policy on Assembler Sources (PR #88185)
David Finkelstein via libc-commits
libc-commits at lists.llvm.org
Wed Apr 10 10:23:18 PDT 2024
================
@@ -186,3 +186,32 @@ We expect contributions to be free of warnings from the `minimum supported
compiler versions`__ (and newer).
.. __: https://libc.llvm.org/compiler_support.html#minimum-supported-versions
+
+Policy on Assembler sources
+===========================
+
+Coding in high level languages such as C++ provides benefits relative to low
+level languages like Assembler, such as:
+
+* Improved safety
+* Instrumentation
+
+ * Code coverage
+ * Profile collection
+* Sanitization
+* Debug info
+
+While its not impossible to have Assembler code that correctly provides all of
+the above, we do not wish to maintain such Assembler sources in llvm-libc.
+
+That said, there a few functions provided by llvm-libc that are more difficult
+to implement or maintain in C++ than Assembler. We do use inline or out-of-line
+Assembler in an intentionally minimal set of places; typically places where the
+stack or individual register state must be manipulated very carefully for
+correctness.
+
+Contributions adding Assembler for performance are not welcome. Contributors
----------------
dpxf wrote:
I go back and forth on having such a carve-out now, or waiting to see what example actually crops up. And part of me is OK with a philosophy of "to get the best code gen, you have to use the latest compiler version" though I know not everyone agrees with that.
https://github.com/llvm/llvm-project/pull/88185
More information about the libc-commits
mailing list