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