In the builtins library, most functions have a portable C implementation (e.g. `mulsf3.c`), and platforms might provide an optimized assembler implementation (e.g. `arm/mulsf3.S`). The cmake script automatically excludes the C source file corresponding to each assembly source file it includes. Additionally, each source file name is automatically translated into a flag that lit tests can query, with a name like `librt_has_mulsf3`, to indicate that a function is available to be tested. In future commits I plan to introduce cases where a single .S file provides more than one function (so that they can share code easily), and therefore, must supersede more than one existing source file. I've introduced the `crt_supersedes` cmake property, which you can set on a .S file to name a list of .c files that it should supersede. Also, the `crt_provides` property can be set on any source file to indicate a list of functions it makes available for testing, in addition to the one implied by its name.
Compiler-RT ================================ This directory and its subdirectories contain source code for the compiler support routines. Compiler-RT is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt. ================================