blob: 5b7b1f3f344e15f06be7e8ea1a381d1cc7eae2b1 [file] [log] [blame]
Chris Lattnerff5380f2009-06-30 22:56:43 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
4<html>
5<head>
6 <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
7 <title>"compiler_rt" Runtime Library</title>
8 <link type="text/css" rel="stylesheet" href="menu.css">
9 <link type="text/css" rel="stylesheet" href="content.css">
10</head>
11<body>
12<!--#include virtual="menu.html.incl"-->
13<div id="content">
14 <!--*********************************************************************-->
15 <h1>"compiler_rt" Runtime Library</h1>
16 <!--*********************************************************************-->
17
18 <p>The compiler_rt project is a simple library that provides an implementation
19 of the low-level target-specific hooks required by code generation and
20 other runtime components. For example, when compiling for a 32-bit target,
21 converting a double to a 64-bit unsigned integer is compiling into a runtime
22 call to the "__fixunsdfdi" function. The compiler_rt library provides
23 optimized implementations of this and other low-level routines.</p>
24
25 <!--=====================================================================-->
26 <h2 id="goals">Goals</h2>
27 <!--=====================================================================-->
28
29 <p>Different targets require different routines. The compiler_rt project aims
30 to implement these routines in both target-independent C form as well as
31 providing heavily optimized assembly versions of the routines in some
32 cases. It should be very easy to bring compiler_rt to support a new
33 target by adding the new routines needed by that target.</p>
34
35 <p>Where it make sense, the compiler_rt project aims to implement interfaces
36 that are drop-in compatible with the libgcc interfaces.</p>
37
38 <!--=====================================================================-->
39 <h2 id="features">Features</h2>
40 <!--=====================================================================-->
41
42 <p>The current feature set of compiler_rt is:</p>
43
44 <ul>
45 <li>Full support for the libgcc interfaces required by these targets:
46 <ul>
47 <li>Darwin i386</li>
48 <li>Darwin X86-64</li>
49 <li>Darwin PowerPC</li>
50 <li>Darwin PowerPC 64</li>
51 </ul></li>
52
53 <li>High performance hand tuned implementations of commonly used functions
54 like __floatundidf in assembly that are dramatically faster than the
55 libgcc implementations.</li>
56 <li>A target-independent implementation of the Apple "Blocks" runtime
57 interfaces.</li>
58 </ul>
59
60 <!--=====================================================================-->
61 <h2>Get it and get involved!</h2>
62 <!--=====================================================================-->
63
64 <p>TODO.</p>
65</div>
66</body>
67</html>