<!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>OpenMP* : Support for the OpenMP language</title>
  <link type="text/css" rel="stylesheet" href="menu.css">
  <link type="text/css" rel="stylesheet" href="content.css">
</head>

<body>
<div id="menu">
  <div>
    <a href="http://llvm.org/">LLVM Home</a>
  </div>

  <div class="submenu">
    <label>OpenMP Info</label>
    <a href="/index.html">About</a>
  </div>

  <div class="submenu">
    <label>Quick Links</label>
    <a href="http://lists.llvm.org/mailman/listinfo/openmp-dev">openmp-dev</a>
    <a href="http://lists.llvm.org/mailman/listinfo/openmp-commits">openmp-commits</a>
    <a href="http://llvm.org/bugs/">Bug Reports</a>
    <a href="https://github.com/llvm/llvm-project/tree/master/openmp">Browse Sources</a>
  </div>
</div>

<div id="content">
  <!--*********************************************************************-->
  <h1>OpenMP&reg;: Support for the OpenMP language</h1>
  <!--*********************************************************************-->

  <p>The OpenMP subproject of LLVM contains the
     components required to build an executable OpenMP program that are
     outside the compiler itself.
  </p>

  <p>Here you can find :-
    <ul>
      <li>
        the code for the runtime library against which
        code compiled by <tt>clang -fopenmp</tt> must be linked before it
        can run.
      </li>
      <li>
        the library that supports offload to target devices (in
        "libomptarget")
      </li>
    </ul>
  </p>

  <p>Support for the parts of the OpenMP 4.0 (and later) language that are not
  associated with the "target" constructs are contained in the
  "runtime" directory. Support for offloading computation via the
  "target" directive is in the separate "libomptarget" directory.
  </p>

  <p>All of the code here 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).
     The LICENSE.txt file at the top of the OpenMP project contains
     the license text and associated patent grants.
  </p>

  <!--=====================================================================-->
  <h2 id="dir-structure">Status</h2>
  <!--=====================================================================-->

   <p>With the release of Clang 3.8.0, OpenMP 3.1 support is enabled in
   Clang by default, and the OpenMP runtime is therefore built as a
   normal part of the Clang build, and distributed with the binary
   distributions.You do not, therefore, need explicitly to check out this code, or
   build it out of tree; a normal Clang check out and build will
   automatically include building these runtime libraries.
   </p>

  <!--=====================================================================-->
  <h2 id="goals">Features and Goals</h2>
  <!--=====================================================================-->

    <ul>
        <li>Support for the <a href="http://www.openmp.org/mp-documents/OpenMP3.1.pdf">OpenMP
          3.1 standard (PDF)</a> has been achieved in the Clang 3.8.0
          release.
        </li>

        <li>Support for the
 <a href="http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf">OpenMP
          4.0 standard (PDF)</a> and <a href="http://www.openmp.org/mp-documents/OpenMP4.5.pdf">OpenMP
          4.5 standard (PDF)</a> is now being implemented. (Some OpenMP 4.0
          and 4.5 features are already available).
        <li>High performance.</li>
        <li>ABI compatibility with <a href="http://gcc.gnu.org">Gcc</a> and
        <a href="http://software.intel.com/en-us/intel-compilers">Intel's
        existing OpenMP compilers.</a>
        We currently have binary compatibility with OpenMP
        3.1 code compiled by gcc 4.9, however we do not have support
        for OpenMP 4.0 code that uses task cancellation when compiled
        by gcc 4.9. How we will support such code remains a research issue.
        </li>
    </ul>

  <!--=====================================================================-->
  <h2 id="why">Why have the runtime code here?</h2>
  <!--=====================================================================-->

  <p>It makes sense to have the runtime sources in the same place
    (and with the same license) as the compiler.
  </p>

  <!--=====================================================================-->
  <h2 id="requirements">Platform Support</h2>
  <!--=====================================================================-->

   <p>The runtime can be built with gcc, icc or clang. However, note
   that a runtime built with clang cannot be guaranteed to work with
   OpenMP code compiled by the other compilers, since clang does not support
   a 128-bit float type, and cannot therefore generate the code used
   for reductions of that type (which may occur in user code compiled
   by the other compilers).
   </p>

  <p>The OpenMP runtime is known to work on
    <ul>
      <li>ARM&reg;&nbsp; architecture processors</li>
      <li>PowerPC&trade;&nbsp; processors</li>
      <li>32 and 64 bit X86
        processors when compiled with clang, with the Intel compiler
        or with gcc, and also the Intel&reg;&nbsp;Xeon Phi&trade; product family, when compiled with
        the Intel compiler.
      </li>
      <li>MIPS and MIPS64</li>
    </ul>
    Ports to other architectures and operating systems are welcome.
  </p>

  <p>A full OS and architecture compatibility matrix is in
    <a href="README.txt">README.txt</a>
  </p>


  <!--=====================================================================-->
  <h2>Get it and get involved!</h2>
  <!--=====================================================================-->

  <p>First please review our
     <a href="http://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>.

  <p>To check out the code, use:</p>

  <ul>
  <li><code>git clone https://github.com/llvm/llvm-project.git</code></li>
  </ul>

  <p>In-tree build:</p>
  <ul>
    <li><code>cd llvm-project</code></li>
    <li><code>mkdir build &amp;&amp; cd build</code></li>
    <li><code>cmake ../llvm -DLLVM_ENABLE_PROJECTS=openmp -DCMAKE_C_COMPILER=&lt;C compiler&gt; -DCMAKE_CXX_COMPILER=&lt;C++ compiler&gt;</code></li>
    <li><code>make omp</code></li>
  </ul>

  <p>Out-of-tree build:</p>
  <ul>
    <li><code>cd llvm-project</code></li>
    <li><code>mkdir build-openmp &amp;&amp; cd build-openmp</code></li>
    <li><code>cmake ../openmp -DCMAKE_C_COMPILER=&lt;C compiler&gt; -DCMAKE_CXX_COMPILER=&lt;C++ compiler&gt;</code></li>
    <li><code>make</code></li>
  </ul>

  <p>Full details of how to build are in the
    <a href="README.txt">README.txt</a> and README.rst in the source code repository.
  </p>

  <!--=====================================================================-->
  <h3>Notes</h3>
  <!--=====================================================================-->

<p>

</p>

  <p>Send discussions to the
  (<a href="http://lists.llvm.org/mailman/listinfo/openmp-dev">OpenMP mailing list</a>).</p>


  <!--=====================================================================-->
  <h2>Design Documents</h2>
  <!--=====================================================================-->

<ul>
<li><a href="Reference.pdf">Runtime design (PDF)</a></li>
</ul>

  <!--=====================================================================-->
  <h2>Copyright notices</h2>
  <!--=====================================================================-->
<ul>
<li>
  The OpenMP name and the OpenMP logo are registered trademarks of the
  OpenMP Architecture Review Board.
</li>
<li>
  Intel is a trademark of Intel Corporation in the U.S. and/or other
  countries.
</li>
<li>
  PowerPC is a trademark of IBM Corporation in the U.S. and/or other
  countries.
</li>
<li>
  ARM is a trademark of ARM Corporation in the U.S. and/or
  other countries.
</li>
<li>
  MIPS is a trademark of MIPS Computer Systems in the U.S. and/or
  other countries.
</li>
</ul>
</div>
</body>
</html>
