<!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 libraries</h1>
  <!--*********************************************************************-->
  
  <p>The compiler-rt project consists of:
  <ul>
  <li>
    <p><b>builtins</b> - 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 builtins library provides
    optimized implementations of this and other low-level routines, either in
    target-independent C form, or as a heavily-optimized assembly.</p>
    <p>builtins provides full support for the libgcc interfaces on supported
    targets and high performance hand tuned implementations of commonly used
    functions like __floatundidf in assembly that are dramatically faster than
    the libgcc implementations. It should be very easy to bring builtins to
    support a new target by adding the new routines needed by that target.</p>
  </li>
  <li>
    <b>sanitizer runtimes</b> - runtime libraries that are required to run
    the code with sanitizer instrumentation. This includes runtimes for:
    <ul>
    <li><a href="http://clang.llvm.org/docs/AddressSanitizer.html">AddressSanitizer</a></li>
    <li><a href="http://clang.llvm.org/docs/ThreadSanitizer.html">ThreadSanitizer</a></li>
    <li><a href="http://clang.llvm.org/docs/UsersManual.html#opt-fsanitize-undefined">UndefinedBehaviorSanitizer</a></li>
    <li><a href="http://clang.llvm.org/docs/MemorySanitizer.html">MemorySanitizer</a></li>
    <li><a href="http://clang.llvm.org/docs/LeakSanitizer.html">LeakSanitizer</a></li>
    <li><a href="http://clang.llvm.org/docs/DataFlowSanitizer.html">DataFlowSanitizer</a></li>
    </ul>
  </li>
  <li>
    <b>profile</b> - library which is used to collect coverage information.
  </li>
  <li>
    <b>BlocksRuntime</b> - a target-independent implementation of Apple "Blocks"
    runtime interfaces.
  </li>
  </ul>
  </p>

  <p>All of the code in the compiler-rt project is <a 
     href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a>
     under the MIT license and the UIUC License (a BSD-like license).</p>

  <!--=====================================================================-->
  <h2 id="users">Clients</h2>
  <!--=====================================================================-->

  <p>Currently compiler-rt is primarily used by
    the <a href="http://clang.llvm.org">Clang</a>
    and <a href="http://llvm.org">LLVM</a> projects as the implementation for
    the runtime compiler support libraries. For more information on using
    compiler-rt with Clang, please see the Clang
    <a href="http://clang.llvm.org/get_started.html">Getting Started</a>
    page.</p>
  
  <!--=====================================================================-->
  <h2 id="requirements">Platform Support</h2>
  <!--=====================================================================-->

   <p><b>builtins</b> is known to work on the following platforms:</p>
   <ul>
   <li>Machine Architectures: i386, X86-64, SPARC64, ARM, PowerPC, PowerPC 64.</li>
   <li>OS: AuroraUX, DragonFlyBSD, FreeBSD, NetBSD, Linux, Darwin.</li>
   </ul>

   <p>Most sanitizer runtimes are supported only on Linux x86-64. See tool-specific
   pages in <a href="http://clang.llvm.org/docs/index.html">Clang docs</a> for more
   details.</p>

  <!--=====================================================================-->
  <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> include/ contains headers that can be included in user programs (for example,
         users may directly call certain function from sanitizer runtimes).</li>
    <li> lib/ contains libraries implementations. </li>
    <li> lib/builtins is a generic portable implementation of <b>builtins</b> routines.</li>
    <li> lib/builtins/(arch) has optimized versions of some routines
         for the supported architectures.</li>
    <li> test/ contains test suites for compiler-rt runtimes.</li>
   </ul>
    
  <!--=====================================================================-->
  <h2>Get it and get involved!</h2>
  <!--=====================================================================-->
  
  <p>Generally, you need to build LLVM/Clang in order to build compiler-rt. You
    can build it either together with llvm and clang, or separately.

  <p>To build it together, simply add compiler-rt to the -DLLVM_ENABLE_PROJECTS= option to
    cmake.

  <p>To build it separately, first
  <a href="http://llvm.org/docs/CMake.html#quick-start">build LLVM</a>
  separately to get llvm-config binary, and then run:

  <ul>
  <li>cd llvm-project</li>
  <li>mkdir build-compiler-rt</li>
  <li>cd build-compiler-rt</li>
  <li>cmake ../compiler-rt -DLLVM_CONFIG_PATH=/path/to/llvm-config</li>
  <li>make</li>
  </ul>

  <p>Tests for sanitizer runtimes are ported to
  <a href="http://llvm.org/docs/CommandGuide/lit.html">llvm-lit</a> and are
  run by <b>make check-all</b> command in LLVM/Clang/compiler-rt build tree.</p>

  <p>compiler-rt libraries are installed to the system with <b>make install</b>
  command in either LLVM/Clang/compiler-rt or standalone
  compiler-rt build tree.</p>

  <p>compiler-rt doesn't have its own mailing list, if you have questions please
     email the <a
    href="http://lists.llvm.org/mailman/listinfo/llvm-dev">llvm-dev</a> mailing
    list.  Commits to the compiler-rt SVN module are automatically sent to the
    <a 
  href="http://lists.llvm.org/mailman/listinfo/llvm-commits">llvm-commits</a>
    mailing list.</p>
</div>
</body>
</html>
