"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.

All of the code in the compiler-rt project is available under the standard LLVM License, a "BSD-style" license.

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:

Get it and get involved!

To check out the code, use:

Note that the library will probably only build out of the box on Darwin, but patches to improve portability are definitely welcome.

compiler-rt doesn't have its own mailing list, if you have questions please email the llvmdev mailing list. Commits to the compiler-rt SVN module are automatically sent to the llvm-commits mailing list.