<!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="https://clang.llvm.org/docs/AddressSanitizer.html">AddressSanitizer</a></li>
    <li><a href="https://clang.llvm.org/docs/ThreadSanitizer.html">ThreadSanitizer</a></li>
    <li><a href="https://clang.llvm.org/docs/UsersManual.html#opt-fsanitize-undefined">UndefinedBehaviorSanitizer</a></li>
    <li><a href="https://clang.llvm.org/docs/MemorySanitizer.html">MemorySanitizer</a></li>
    <li><a href="https://clang.llvm.org/docs/LeakSanitizer.html">LeakSanitizer</a></li>
    <li><a href="https://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="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">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="https://clang.llvm.org">Clang</a>
    and <a href="https://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="https://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: DragonFlyBSD, FreeBSD, NetBSD, OpenBSD, Linux, Darwin.</li>
   </ul>

   <p>Most sanitizer runtimes are supported only on Linux x86-64. See tool-specific
   pages in <a href="https://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_RUNTIMES= option to
    cmake.

  <p>To build it separately, first
  <a href="https://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="https://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>If you have questions, please ask on the <a href="https://discourse.llvm.org/c/runtimes/64">
   Discourse forums</a> under the Runtime category.  Commits to compiler-rt are automatically 
   sent to the <a
  href="https://lists.llvm.org/mailman/listinfo/llvm-commits">llvm-commits</a>
    mailing list.</p>
</div>
</body>
</html>
