.. title:: Welcome to the documentation of OpenMP in LLVM!

.. note::
   This document is a work in progress and most of the expected content is not
   yet available. While you can expect changes, we always welcome feedback and
   additions. Please post on the `Discourse forums (Runtimes - 
   OpenMP) <https://discourse.llvm.org/c/runtimes/openmp/35>`__..

.. toctree::
   :hidden:
   :maxdepth: 1

   LLVM/OpenMP Documentation <self>


LLVM/OpenMP Design & Overview
=============================

OpenMP impacts various parts of the LLVM project, from the frontends (`Clang
<https://clang.llvm.org/docs/OpenMPSupport.html>`_ and Flang), through
middle-end :ref:`optimizations <llvm_openmp_optimizations>`, up to the
multitude of available :ref:`OpenMP runtimes <openmp_runtimes>`.

A high-level overview of OpenMP in LLVM can be found :doc:`here <design/Overview>`.

.. toctree::
   :hidden:
   :maxdepth: 1

   design/Overview

OpenACC Support
===============

:doc:`OpenACC support <openacc/Overview>` is under development for
both Flang and Clang.  For this purpose, LLVM's OpenMP runtimes are
being extended to serve as OpenACC runtimes.  In some cases, Clang
supports :doc:`OpenMP extensions <openacc/OpenMPExtensions>` to make
the additional functionality also available in OpenMP applications.

.. toctree::
   :hidden:
   :maxdepth: 1

   openacc/Overview

LLVM/OpenMP Optimizations
=========================

LLVM, since `version 11 <https://releases.llvm.org/download.html#11.0.0>`_ (12 Oct
2020), has an :doc:`OpenMP-Aware optimization pass <optimizations/OpenMPOpt>`
as well as the ability to :doc:`perform "scalar optimizations" across OpenMP region
boundaries <optimizations/OpenMPUnawareOptimizations>`.

In-depth discussion of the topic can be found :doc:`here <optimizations/Overview>`.

.. toctree::
   :hidden:
   :maxdepth: 1

   optimizations/Overview

LLVM/OpenMP Optimization Remarks
================================

LLVM has an elaborate ecosystem around `analysis and optimization remarks
<https://llvm.org/docs/Remarks.html>`_ issues during
compilation. The remarks can be enabled from the clang frontend `[1]`_ `[2]`_
in various formats `[3]`_ `[4]`_ to be used by tools, i.a., `opt-viewer` or
`llvm-opt-report` (dated).

The OpenMP optimizations in LLVM have been developed with remark support as a
priority. For a list of OpenMP specific remarks and more information on them,
please refer to :doc:`remarks/OptimizationRemarks`.


.. _`[1]`: https://clang.llvm.org/docs/UsersManual.html#options-to-emit-optimization-reports
.. _`[2]`: https://clang.llvm.org/docs/ClangCommandLineReference.html#diagnostic-flags
.. _`[3]`: https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-foptimization-record-file
.. _`[4]`: https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang1-fsave-optimization-record

+ `[1]`_ https://clang.llvm.org/docs/UsersManual.html#options-to-emit-optimization-reports
+ `[2]`_ https://clang.llvm.org/docs/ClangCommandLineReference.html#diagnostic-flags
+ `[3]`_ https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-foptimization-record-file
+ `[4]`_ https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang1-fsave-optimization-record


.. toctree::
   :hidden:
   :maxdepth: 1

   remarks/OptimizationRemarks


Support, Getting Involved, and Frequently Asked Questions (FAQ)
===============================================================

Dealing with OpenMP can be complicated. For help with the setup of an OpenMP
(offload) capable compiler toolchain, its usage, and common problems, consult
the :doc:`Support and FAQ <SupportAndFAQ>` page.

We also encourage everyone interested in OpenMP in LLVM to :doc:`get involved
<SupportAndFAQ>`.


.. toctree::
   :hidden:
   :maxdepth: 1

   SupportAndFAQ

Release Notes
=============

The current (in-progress) release notes can be found :doc:`here <ReleaseNotes>` while
release notes for releases, starting with LLVM 12, will be available on `the
Download Page <https://releases.llvm.org/download.html>`_.


.. toctree::
   :hidden:
   :maxdepth: 1

   In-Progress ReleaseNotes <ReleaseNotes>
