| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" |
| "http://www.w3.org/TR/html4/strict.dtd"> |
| <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> |
| <html> |
| <head> |
| <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| <title>"compiler_rt" Runtime Library</title> |
| <link type="text/css" rel="stylesheet" href="menu.css"> |
| <link type="text/css" rel="stylesheet" href="content.css"> |
| </head> |
| <body> |
| <!--#include virtual="menu.html.incl"--> |
| <div id="content"> |
| <!--*********************************************************************--> |
| <h1>"compiler_rt" Runtime Library</h1> |
| <!--*********************************************************************--> |
| |
| <p>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.</p> |
| |
| <!--=====================================================================--> |
| <h2 id="goals">Goals</h2> |
| <!--=====================================================================--> |
| |
| <p>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.</p> |
| |
| <p>Where it make sense, the compiler_rt project aims to implement interfaces |
| that are drop-in compatible with the libgcc interfaces.</p> |
| |
| <!--=====================================================================--> |
| <h2 id="features">Features</h2> |
| <!--=====================================================================--> |
| |
| <p>The current feature set of compiler_rt is:</p> |
| |
| <ul> |
| <li>Full support for the libgcc interfaces required by these targets: |
| <ul> |
| <li>Darwin i386</li> |
| <li>Darwin X86-64</li> |
| <li>Darwin PowerPC</li> |
| <li>Darwin PowerPC 64</li> |
| </ul></li> |
| |
| <li>High performance hand tuned implementations of commonly used functions |
| like __floatundidf in assembly that are dramatically faster than the |
| libgcc implementations.</li> |
| <li>A target-independent implementation of the Apple "Blocks" runtime |
| interfaces.</li> |
| </ul> |
| |
| <!--=====================================================================--> |
| <h2>Get it and get involved!</h2> |
| <!--=====================================================================--> |
| |
| <p>TODO.</p> |
| </div> |
| </body> |
| </html> |