xref: /llvm-project/libc/docs/compiler_support.rst (revision 282798fefdafc2c86bcc70c66d764d6b09fc6cb9)
1062a7ea5SGuillaume Chatelet.. _compiler_support:
2062a7ea5SGuillaume Chatelet
3062a7ea5SGuillaume Chatelet================
4062a7ea5SGuillaume ChateletCompiler Support
5062a7ea5SGuillaume Chatelet================
6062a7ea5SGuillaume Chatelet
783e98c85SGuillaume Chatelet``LLVM libc`` compiles from both ``Clang`` and ``GCC`` but for maximum
8*282798feSKazu Hirataperformance we recommend using ``Clang``.
9062a7ea5SGuillaume Chatelet
1083e98c85SGuillaume ChateletIndeed, some memory function implementations rely on `compiler intrinsics`__
1183e98c85SGuillaume Chateletthat are not currently available in ``GCC``.
12062a7ea5SGuillaume ChateletAs such we cannot guarantee optimal performance for these functions.
13062a7ea5SGuillaume Chatelet
14062a7ea5SGuillaume Chatelet.. __: https://clang.llvm.org/docs/LanguageExtensions.html#guaranteed-inlined-copy
15062a7ea5SGuillaume Chatelet
1683e98c85SGuillaume ChateletFor platforms where only ``GCC`` is natively available but maximum performance
1783e98c85SGuillaume Chateletis required it is possible to bootstrap ``Clang`` with ``GCC`` and then use
1883e98c85SGuillaume Chatelet``Clang`` to build the '`libc``" project.
1983e98c85SGuillaume Chatelet
20be721a38SSiva Chandra ReddyMinimum supported versions
21be721a38SSiva Chandra Reddy==========================
22062a7ea5SGuillaume Chatelet
23062a7ea5SGuillaume Chatelet - ``Clang 11``
24be721a38SSiva Chandra Reddy - ``GCC 12.2``
25