<!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="https://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="https://lists.llvm.org/mailman/listinfo/openmp-dev">openmp-dev</a>
    <a href="https://lists.llvm.org/mailman/listinfo/openmp-commits">openmp-commits</a>
    <a href="https://bugs.llvm.org/">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="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).
     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="https://www.openmp.org/wp-content/uploads/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="https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf">OpenMP
          4.0 standard (PDF)</a> and <a href="https://www.openmp.org/wp-content/uploads/openmp-4.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="https://gcc.gnu.org">Gcc</a> and
        <a href="https://software.intel.com/en-us/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>
      <li>RISC-V 64-bit</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="https://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="https://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>
