aboutsummaryrefslogtreecommitdiff
path: root/www/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'www/index.html')
-rw-r--r--www/index.html156
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>