index.html revision 135bcdf9ca7584489050b23b2ee155cce6d6cce3
1<!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
12<body>
13<!--#include virtual="menu.html.incl"-->
14<div id="content">
15  <!--*********************************************************************-->
16  <h1>"compiler-rt" Runtime Library</h1>
17  <!--*********************************************************************-->
18  
19  <p>The compiler-rt project is a simple library that provides an implementation
20     of the low-level target-specific hooks required by code generation and
21     other runtime components.  For example, when compiling for a 32-bit target,
22    converting a double to a 64-bit unsigned integer is compiling into a runtime
23    call to the "__fixunsdfdi" function.  The compiler-rt library provides
24    optimized implementations of this and other low-level routines.</p>
25
26  <p>All of the code in the compiler-rt project is available under the standard
27     <a href="http://llvm.org/docs/DeveloperPolicy.html#license">LLVM
28     License</a>, a "BSD-style" license.</p>
29  
30  <!--=====================================================================-->
31  <h2 id="goals">Goals</h2>
32  <!--=====================================================================-->
33  
34  <p>Different targets require different routines.  The compiler-rt project aims
35     to implement these routines in both target-independent C form as well as
36     providing heavily optimized assembly versions of the routines in some
37     cases.  It should be very easy to bring compiler-rt to support a new
38     target by adding the new routines needed by that target.</p>
39     
40  <p>Where it make sense, the compiler-rt project aims to implement interfaces
41     that are drop-in compatible with the libgcc interfaces.</p>
42
43  <!--=====================================================================-->
44  <h2 id="features">Features</h2>
45  <!--=====================================================================-->
46
47   <p>The current feature set of compiler-rt is:</p>
48
49   <ul>
50    <li>Full support for the libgcc interfaces required by these targets:
51      <ul>
52      <li>Darwin i386</li>
53      <li>Darwin X86-64</li>
54      <li>Darwin PowerPC</li>
55      <li>Darwin PowerPC 64</li>
56      </ul></li>
57      
58    <li>High performance hand tuned implementations of commonly used functions
59        like __floatundidf in assembly that are dramatically faster than the
60        libgcc implementations.</li>
61    <li>A target-independent implementation of the Apple "Blocks" runtime
62        interfaces.</li>
63   </ul>
64  
65  <!--=====================================================================-->
66  <h2>Get it and get involved!</h2>
67  <!--=====================================================================-->
68  
69  <p>To check out the code, use:</p>
70  
71  <ul>
72  <li>svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt</li>
73  <li>cd compiler-rt</li>
74  <li>make</li>
75  </ul>
76  
77  <p>Note that the library will probably only build out of the box on Darwin,
78     but patches to improve portability are definitely welcome.</p>
79  
80  <p>compiler-rt doesn't have its own mailing list, if you have questions please
81     email the <a
82    href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">llvmdev</a> mailing
83    list.  Commits to the compiler-rt SVN module are automatically sent to the
84    <a 
85  href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">llvm-commits</a>
86    mailing list.</p>
87</div>
88</body>
89</html>
90