blob: 524b085ca808336b4a5e13aef6f55f9bc882a7a9 [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>
11<body>
12<!--#include virtual="menu.html.incl"-->
13<div id="content">
14 <!--*********************************************************************-->
Chris Lattnerc1346742009-07-01 17:16:20 +000015 <h1>"compiler-rt" Runtime Library</h1>
Chris Lattnerff5380f2009-06-30 22:56:43 +000016 <!--*********************************************************************-->
17
Chris Lattnerc1346742009-07-01 17:16:20 +000018 <p>The compiler-rt project is a simple library that provides an implementation
Chris Lattnerff5380f2009-06-30 22:56:43 +000019 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
Chris Lattnerc1346742009-07-01 17:16:20 +000022 call to the "__fixunsdfdi" function. The compiler-rt library provides
Chris Lattnerff5380f2009-06-30 22:56:43 +000023 optimized implementations of this and other low-level routines.</p>
24
25 <!--=====================================================================-->
26 <h2 id="goals">Goals</h2>
27 <!--=====================================================================-->
28
Chris Lattnerc1346742009-07-01 17:16:20 +000029 <p>Different targets require different routines. The compiler-rt project aims
Chris Lattnerff5380f2009-06-30 22:56:43 +000030 to implement these routines in both target-independent C form as well as
31 providing heavily optimized assembly versions of the routines in some
Chris Lattnerc1346742009-07-01 17:16:20 +000032 cases. It should be very easy to bring compiler-rt to support a new
Chris Lattnerff5380f2009-06-30 22:56:43 +000033 target by adding the new routines needed by that target.</p>
34
Chris Lattnerc1346742009-07-01 17:16:20 +000035 <p>Where it make sense, the compiler-rt project aims to implement interfaces
Chris Lattnerff5380f2009-06-30 22:56:43 +000036 that are drop-in compatible with the libgcc interfaces.</p>
37
38 <!--=====================================================================-->
39 <h2 id="features">Features</h2>
40 <!--=====================================================================-->
41
Chris Lattnerc1346742009-07-01 17:16:20 +000042 <p>The current feature set of compiler-rt is:</p>
Chris Lattnerff5380f2009-06-30 22:56:43 +000043
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
Chris Lattnerc1346742009-07-01 17:16:20 +000064 <p>To check out the code, use:</p>
65
66 <ul>
67 <li>svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt</li>
68 <li>cd compiler-rt</li>
69 <li>make</li>
70 </ul>
71
72 <p>Note that the library will probably only build out of the box on Darwin,
73 but patches to improve portability are definitely welcome.</p>
74
75 <p>compiler-rt doesn't have its own mailing list, if you have questions please
76 email the <a
77 href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">llvmdev</a> mailing
78 list. Commits to the compiler-rt SVN module are automatically sent to the
79 <a
80 href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">llvm-commits</a>
81 mailing list.</p>
Chris Lattnerff5380f2009-06-30 22:56:43 +000082</div>
83</body>
84</html>