[libc-commits] [PATCH] D143413: [libc][doc] Add macros guidelines
Guillaume Chatelet via Phabricator via libc-commits
libc-commits at lists.llvm.org
Tue Feb 7 01:30:03 PST 2023
This revision was automatically updated to reflect the committed changes.
Closed by commit rGc1832e903e00: [libc][doc] Add macros guidelines (authored by gchatelet).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D143413/new/
https://reviews.llvm.org/D143413
Files:
libc/docs/code_style.rst
Index: libc/docs/code_style.rst
===================================================================
--- libc/docs/code_style.rst
+++ libc/docs/code_style.rst
@@ -24,6 +24,27 @@
#. **Public names** - These are the names as prescribed by the standards and
will follow the style as prescribed by the standards.
+Macro style
+===========
+
+We define two kinds of macros: **code defined** and **build defined** macros.
+
+#. **Build defined** macros are generated by `CMake` or `Bazel` and are passed
+ down to the compiler with the ``-D`` command line flag. They start with the
+ ``LIBC_COPT_`` prefix. They are used to tune the behavior of the libc.
+ They either denote an action or define a constant.
+
+#. **Code defined** macros are defined within the ``src/__support/macros``
+ folder. They all start with the ``LIBC_`` prefix. They are of two kinds
+
+ * **Properties** - Build related properties like used compiler, target
+ architecture or enabled CPU features defined by introspecting compiler
+ defined preprocessor defininitions. e.g., ``LIBC_TARGET_IS_ARM``,
+ ``LIBC_TARGET_HAS_AVX2``, ``LIBC_COMPILER_IS_CLANG``, ...
+ * **Attributes** - Compiler agnostic attributes or functions to handle
+ specific operations. e.g., ``LIBC_INLINE``, ``LIBC_NO_LOOP_UNROLL``,
+ ``LIBC_LIKELY``, ``LIBC_INLINE_ASM``.
+
Inline functions defined in header files
========================================
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D143413.495423.patch
Type: text/x-patch
Size: 1440 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libc-commits/attachments/20230207/0159244d/attachment.bin>
More information about the libc-commits
mailing list