index.html revision 8c8d1aaf3b776095d1fe5018d4b16622b46d4e12
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 on supported targets.</li> 51 <li>High performance hand tuned implementations of commonly used functions 52 like __floatundidf in assembly that are dramatically faster than the 53 libgcc implementations.</li> 54 <li>A target-independent implementation of the Apple "Blocks" runtime 55 interfaces.</li> 56 </ul> 57 58 <!--=====================================================================--> 59 <h2 id="requirements">Platform Support</h2> 60 <!--=====================================================================--> 61 62 <p>Compiler-RT is known to work on the following platforms:</p> 63 64 <li>Machine Architectures: 65 <ul> 66 <li>i386</li> 67 <li>X86-64</li> 68 <li>SPARC64</li> 69 <li>ARM</li> 70 <li>PowerPC</li> 71 <li>PowerPC 64</li> 72 </ul></li> 73 74 <table cellpadding="3" summary="Known Compiler-RT platforms"> 75 <tr> 76 <th>OS</th> 77 <th>Arch</th> 78 </tr> 79 <tr> 80 <td>AuroraUX</td> 81 <td>All<sup> 82 </tr> 83 <tr> 84 <td>FreeBSD</td> 85 <td>All<sup> 86 </tr> 87 <tr> 88 <td>NetBSD</td> 89 <td>All<sup> 90 </tr> 91 <tr> 92 <td>Linux</td> 93 <td>All<sup> 94 </tr> 95 <tr> 96 <td>Darwin</td> 97 <td>All<sup> 98 </tr> 99 </table> 100 101 <!--=====================================================================--> 102 <h2 id="dir-structure">Source Structure</h2> 103 <!--=====================================================================--> 104 105 <p>A short explanation of the directory structure of compiler-rt:</p> 106 107 <p>For testing it is possible to build a generic library and an optimized library. 108 The optimized library is formed by overlaying the optimized versions onto the generic library. 109 Of course, some architectures have additional functions, 110 so the optimized library may have functions not found in the generic version.</p> 111 112 <ul> 113 <li> lib/ Is a generic portable implementations.</li> 114 <li> lib/(arch) has optimized version for the supported architectures.</li> 115 </ul> 116 117 <!--=====================================================================--> 118 <h2>Get it and get involved!</h2> 119 <!--=====================================================================--> 120 121 <p>To check out the code, use:</p> 122 123 <ul> 124 <li>svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt</li> 125 <li>mkdir build</li> 126 <li>cd build</li> 127 <li>cmake /compiler-rt</li> 128 <li>make</li> 129 <li>To run the Compiler-RT Test Suit (recommended):</li> 130 <li>ctest</li> 131 <li>To Install:</li> 132 <li>make install</li> 133 </ul> 134 135 <p>compiler-rt doesn't have its own mailing list, if you have questions please 136 email the <a 137 href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">llvmdev</a> mailing 138 list. Commits to the compiler-rt SVN module are automatically sent to the 139 <a 140 href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">llvm-commits</a> 141 mailing list.</p> 142</div> 143</body> 144</html> 145