<!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/main/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>
