1.. title:: Welcome to the documentation of OpenMP in LLVM!
2
3.. note::
4   This document is a work in progress and most of the expected content is not
5   yet available. While you can expect changes, we always welcome feedback and
6   additions. Please contact, e.g., through ``openmp-dev@lists.llvm.org``.
7
8.. toctree::
9   :hidden:
10   :maxdepth: 1
11
12   LLVM/OpenMP Documentation <self>
13
14
15LLVM/OpenMP Design & Overview
16=============================
17
18OpenMP impacts various parts of the LLVM project, from the frontends (`Clang
19<https://clang.llvm.org/docs/OpenMPSupport.html>`_ and Flang), through
20middle-end :ref:`optimizations <llvm_openmp_optimizations>`, up to the
21multitude of available :ref:`OpenMP runtimes <openmp_runtimes>`.
22
23A high-level overview of OpenMP in LLVM can be found :doc:`here <design/Overview>`.
24
25.. toctree::
26   :hidden:
27   :maxdepth: 1
28
29   design/Overview
30
31
32LLVM/OpenMP Optimizations
33=========================
34
35LLVM, since `version 11 <https://releases.llvm.org/download.html#11.0.0>`_ (12 Oct
362020), has an :doc:`OpenMP-Aware optimization pass <optimizations/OpenMPOpt>`
37as well as the ability to :doc:`perform "scalar optimizations" across OpenMP region
38boundaries <optimizations/OpenMPUnawareOptimizations>`.
39
40In-depth discussion of the topic can be found :doc:`here <optimizations/Overview>`.
41
42.. toctree::
43   :hidden:
44   :maxdepth: 1
45
46   optimizations/Overview
47
48LLVM/OpenMP Optimization Remarks
49================================
50
51LLVM has an elaborate ecosystem around `analysis and optimization remarks
52<https://llvm.org/docs/Remarks.html>`_ issues during
53compilation. The remarks can be enabled from the clang frontend `[1]`_ `[2]`_
54in various formats `[3]`_ `[4]`_ to be used by tools, i.a., `opt-viewer` or
55`llvm-opt-report` (dated).
56
57The OpenMP optimizations in LLVM have been developed with remark support as a
58priority. For a list of OpenMP specific remarks and more information on them,
59please refer to :doc:`remarks/OptimizationRemarks`.
60
61
62.. _`[1]`: https://clang.llvm.org/docs/UsersManual.html#options-to-emit-optimization-reports
63.. _`[2]`: https://clang.llvm.org/docs/ClangCommandLineReference.html#diagnostic-flags
64.. _`[3]`: https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-foptimization-record-file
65.. _`[4]`: https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang1-fsave-optimization-record
66
67+ `[1]`_ https://clang.llvm.org/docs/UsersManual.html#options-to-emit-optimization-reports
68+ `[2]`_ https://clang.llvm.org/docs/ClangCommandLineReference.html#diagnostic-flags
69+ `[3]`_ https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-foptimization-record-file
70+ `[4]`_ https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang1-fsave-optimization-record
71
72
73.. toctree::
74   :hidden:
75   :maxdepth: 1
76
77   remarks/OptimizationRemarks
78
79
80Support, Getting Involved, and Frequently Asked Questions (FAQ)
81===============================================================
82
83Dealing with OpenMP can be complicated. For help with the setup of an OpenMP
84(offload) capable compiler toolchain, its usage, and common problems, consult
85the :doc:`Support and FAQ <SupportAndFAQ>` page.
86
87We also encourage everyone interested in OpenMP in LLVM to :doc:`get involved
88<SupportAndFAQ>`.
89
90
91.. toctree::
92   :hidden:
93   :maxdepth: 1
94
95   SupportAndFAQ
96
97Release Notes
98=============
99
100The current (in-progress) release notes can be found :doc:`here <ReleaseNotes>` while
101release notes for releases, starting with LLVM 12, will be available on `the
102Download Page <https://releases.llvm.org/download.html>`_.
103
104
105.. toctree::
106   :hidden:
107   :maxdepth: 1
108
109   In-Progress ReleaseNotes <ReleaseNotes>
110