[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