blob: c4306cd2f9ef5b5e9b66326e9810d9c4b3a436d1 [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">
Chris Lattnerc1346742009-07-01 17:16:20 +00007 <title>"compiler-rt" Runtime Library</title>
Chris Lattnerff5380f2009-06-30 22:56:43 +00008 <link type="text/css" rel="stylesheet" href="menu.css">
9 <link type="text/css" rel="stylesheet" href="content.css">
10</head>
Chris Lattner135bcdf2009-07-02 21:34:35 +000011
Chris Lattnerff5380f2009-06-30 22:56:43 +000012<body>
13<!--#include virtual="menu.html.incl"-->
14<div id="content">
15 <!--*********************************************************************-->
Chris Lattnerc1346742009-07-01 17:16:20 +000016 <h1>"compiler-rt" Runtime Library</h1>
Chris Lattnerff5380f2009-06-30 22:56:43 +000017 <!--*********************************************************************-->
18
Chris Lattnerc1346742009-07-01 17:16:20 +000019 <p>The compiler-rt project is a simple library that provides an implementation
Chris Lattnerff5380f2009-06-30 22:56:43 +000020 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
Chris Lattnerc1346742009-07-01 17:16:20 +000023 call to the "__fixunsdfdi" function. The compiler-rt library provides
Chris Lattnerff5380f2009-06-30 22:56:43 +000024 optimized implementations of this and other low-level routines.</p>
Chris Lattnereb561be2009-07-02 21:29:19 +000025
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>
Chris Lattnerff5380f2009-06-30 22:56:43 +000029
30 <!--=====================================================================-->
31 <h2 id="goals">Goals</h2>
32 <!--=====================================================================-->
33
Chris Lattnerc1346742009-07-01 17:16:20 +000034 <p>Different targets require different routines. The compiler-rt project aims
Chris Lattnerff5380f2009-06-30 22:56:43 +000035 to implement these routines in both target-independent C form as well as
36 providing heavily optimized assembly versions of the routines in some
Chris Lattnerc1346742009-07-01 17:16:20 +000037 cases. It should be very easy to bring compiler-rt to support a new
Chris Lattnerff5380f2009-06-30 22:56:43 +000038 target by adding the new routines needed by that target.</p>
39
Chris Lattnerc1346742009-07-01 17:16:20 +000040 <p>Where it make sense, the compiler-rt project aims to implement interfaces
Chris Lattnerff5380f2009-06-30 22:56:43 +000041 that are drop-in compatible with the libgcc interfaces.</p>
42
43 <!--=====================================================================-->
44 <h2 id="features">Features</h2>
45 <!--=====================================================================-->
46
Chris Lattnerc1346742009-07-01 17:16:20 +000047 <p>The current feature set of compiler-rt is:</p>
Chris Lattnerff5380f2009-06-30 22:56:43 +000048
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
Chris Lattnerc1346742009-07-01 17:16:20 +000069 <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>
Chris Lattnerff5380f2009-06-30 22:56:43 +000087</div>
88</body>
89</html>