diff options
Diffstat (limited to 'www/index.html')
-rw-r--r-- | www/index.html | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/www/index.html b/www/index.html new file mode 100644 index 000000000000..f8863f8c3bfb --- /dev/null +++ b/www/index.html @@ -0,0 +1,156 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> +<html> +<head> + <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <title>"compiler-rt" Runtime Library</title> + <link type="text/css" rel="stylesheet" href="menu.css"> + <link type="text/css" rel="stylesheet" href="content.css"> +</head> + +<body> +<!--#include virtual="menu.html.incl"--> +<div id="content"> + <!--*********************************************************************--> + <h1>"compiler-rt" Runtime Library</h1> + <!--*********************************************************************--> + + <p>The compiler-rt project is a simple library that provides an implementation + of the low-level target-specific hooks required by code generation and + other runtime components. For example, when compiling for a 32-bit target, + converting a double to a 64-bit unsigned integer is compiling into a runtime + call to the "__fixunsdfdi" function. The compiler-rt library provides + optimized implementations of this and other low-level routines.</p> + + <p>All of the code in the compiler-rt project is available under the standard + <a href="http://llvm.org/docs/DeveloperPolicy.html#license">LLVM + License</a>, a "BSD-style" license.</p> + + <!--=====================================================================--> + <h2 id="goals">Goals</h2> + <!--=====================================================================--> + + <p>Different targets require different routines. The compiler-rt project aims + to implement these routines in both target-independent C form as well as + providing heavily optimized assembly versions of the routines in some + cases. It should be very easy to bring compiler-rt to support a new + target by adding the new routines needed by that target.</p> + + <p>Where it make sense, the compiler-rt project aims to implement interfaces + that are drop-in compatible with the libgcc interfaces.</p> + + <!--=====================================================================--> + <h2 id="features">Features</h2> + <!--=====================================================================--> + + <p>The current feature set of compiler-rt is:</p> + + <ul> + <li>Full support for the libgcc interfaces on supported targets.</li> + <li>High performance hand tuned implementations of commonly used functions + like __floatundidf in assembly that are dramatically faster than the + libgcc implementations.</li> + <li>A target-independent implementation of the Apple "Blocks" runtime + interfaces.</li> + </ul> + + <!--=====================================================================--> + <h2 id="requirements">Platform Support</h2> + <!--=====================================================================--> + + <p>Compiler-RT is known to work on the following platforms:</p> + + <li>Machine Architectures: + <ul> + <li>i386</li> + <li>X86-64</li> + <li>SPARC64</li> + <li>ARM</li> + <li>PowerPC</li> + <li>PowerPC 64</li> + </ul></li> + + <table cellpadding="3" summary="Known Compiler-RT platforms"> + <tr> + <th>OS</th> + <th>Arch</th> + </tr> + <tr> + <td>AuroraUX</td> + <td>All<sup> + </tr> + <tr> + <td>DragonFlyBSD</td> + <td>All<sup> + </tr> + <tr> + <td>FreeBSD</td> + <td>All<sup> + </tr> + <tr> + <td>NetBSD</td> + <td>All<sup> + </tr> + <tr> + <td>Linux</td> + <td>All<sup> + </tr> + <tr> + <td>Darwin</td> + <td>All<sup> + </tr> + </table> + + <!--=====================================================================--> + <h2 id="dir-structure">Source Structure</h2> + <!--=====================================================================--> + + <p>A short explanation of the directory structure of compiler-rt:</p> + + <p>For testing it is possible to build a generic library and an optimized library. + The optimized library is formed by overlaying the optimized versions onto the generic library. + Of course, some architectures have additional functions, + so the optimized library may have functions not found in the generic version.</p> + + <ul> + <li> lib/ Is a generic portable implementations.</li> + <li> lib/(arch) has optimized version for the supported architectures.</li> + </ul> + + <!--=====================================================================--> + <h2>Get it and get involved!</h2> + <!--=====================================================================--> + + <p>To check out the code, use:</p> + + <ul> + <li>svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt</li> + <li>mkdir build</li> + <li>cd build</li> + <li>cmake ../compiler-rt</li> + <li>make</li> + </ul> + + <p>To run the Compiler-RT Test Suit (recommended):</p> + + <ul> + <li>ctest</li> + </ul> + + <p>To Install:</p> + + <ul> + <li>make install</li> + </ul> + + <p>compiler-rt doesn't have its own mailing list, if you have questions please + email the <a + href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">llvmdev</a> mailing + list. Commits to the compiler-rt SVN module are automatically sent to the + <a + href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">llvm-commits</a> + mailing list.</p> +</div> +</body> +</html> |