"compiler_rt" Runtime Library
The compiler_rt project is a simple library that provides an implementation of the low-level target-specific hooks required by code generation and other runtime components. For example, when compiling for a 32-bit target, converting a double to a 64-bit unsigned integer is compiling into a runtime call to the "__fixunsdfdi" function. The compiler_rt library provides optimized implementations of this and other low-level routines.
Goals
Different targets require different routines. The compiler_rt project aims to implement these routines in both target-independent C form as well as providing heavily optimized assembly versions of the routines in some cases. It should be very easy to bring compiler_rt to support a new target by adding the new routines needed by that target.
Where it make sense, the compiler_rt project aims to implement interfaces that are drop-in compatible with the libgcc interfaces.
Features
The current feature set of compiler_rt is:
- Full support for the libgcc interfaces required by these targets:
- Darwin i386
- Darwin X86-64
- Darwin PowerPC
- Darwin PowerPC 64
- High performance hand tuned implementations of commonly used functions like __floatundidf in assembly that are dramatically faster than the libgcc implementations.
- A target-independent implementation of the Apple "Blocks" runtime interfaces.
Get it and get involved!
TODO.