Guillaume Chatelet | 062a7ea | 2023-01-05 13:35:09 | [diff] [blame] | 1 | .. _compiler_support: |
| 2 | |
| 3 | ================ |
| 4 | Compiler Support |
| 5 | ================ |
| 6 | |
Guillaume Chatelet | 83e98c8 | 2023-02-06 13:03:18 | [diff] [blame] | 7 | ``LLVM libc`` compiles from both ``Clang`` and ``GCC`` but for maximum |
Kazu Hirata | 282798f | 2023-05-06 18:26:32 | [diff] [blame] | 8 | performance we recommend using ``Clang``. |
Guillaume Chatelet | 062a7ea | 2023-01-05 13:35:09 | [diff] [blame] | 9 | |
Guillaume Chatelet | 83e98c8 | 2023-02-06 13:03:18 | [diff] [blame] | 10 | Indeed, some memory function implementations rely on `compiler intrinsics`__ |
| 11 | that are not currently available in ``GCC``. |
Guillaume Chatelet | 062a7ea | 2023-01-05 13:35:09 | [diff] [blame] | 12 | As such we cannot guarantee optimal performance for these functions. |
| 13 | |
| 14 | .. __: https://clang.llvm.org/docs/LanguageExtensions.html#guaranteed-inlined-copy |
| 15 | |
Guillaume Chatelet | 83e98c8 | 2023-02-06 13:03:18 | [diff] [blame] | 16 | For platforms where only ``GCC`` is natively available but maximum performance |
| 17 | is required it is possible to bootstrap ``Clang`` with ``GCC`` and then use |
| 18 | ``Clang`` to build the '`libc``" project. |
| 19 | |
Siva Chandra Reddy | be721a3 | 2023-03-15 05:52:53 | [diff] [blame] | 20 | Minimum supported versions |
| 21 | ========================== |
Guillaume Chatelet | 062a7ea | 2023-01-05 13:35:09 | [diff] [blame] | 22 | |
| 23 | - ``Clang 11`` |
Siva Chandra Reddy | be721a3 | 2023-03-15 05:52:53 | [diff] [blame] | 24 | - ``GCC 12.2`` |