[NFC] Trim trailing whitespace in *.rst
[platform/upstream/llvm.git] / openmp / docs / index.rst
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
15 LLVM/OpenMP Design & Overview
16 =============================
17
18 OpenMP impacts various parts of the LLVM project, from the frontends (`Clang
19 <https://clang.llvm.org/docs/OpenMPSupport.html>`_ and Flang), through
20 middle-end :ref:`optimizations <llvm_openmp_optimizations>`, up to the
21 multitude of available :ref:`OpenMP runtimes <openmp_runtimes>`.
22
23 A 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 OpenACC Support
32 ===============
33
34 :doc:`OpenACC support <openacc/Overview>` is under development for
35 both Flang and Clang.  For this purpose, LLVM's OpenMP runtimes are
36 being extended to serve as OpenACC runtimes.  In some cases, Clang
37 supports :doc:`OpenMP extensions <openacc/OpenMPExtensions>` to make
38 the additional functionality also available in OpenMP applications.
39
40 .. toctree::
41    :hidden:
42    :maxdepth: 1
43
44    openacc/Overview
45
46 LLVM/OpenMP Optimizations
47 =========================
48
49 LLVM, since `version 11 <https://releases.llvm.org/download.html#11.0.0>`_ (12 Oct
50 2020), has an :doc:`OpenMP-Aware optimization pass <optimizations/OpenMPOpt>`
51 as well as the ability to :doc:`perform "scalar optimizations" across OpenMP region
52 boundaries <optimizations/OpenMPUnawareOptimizations>`.
53
54 In-depth discussion of the topic can be found :doc:`here <optimizations/Overview>`.
55
56 .. toctree::
57    :hidden:
58    :maxdepth: 1
59
60    optimizations/Overview
61
62 LLVM/OpenMP Optimization Remarks
63 ================================
64
65 LLVM has an elaborate ecosystem around `analysis and optimization remarks
66 <https://llvm.org/docs/Remarks.html>`_ issues during
67 compilation. The remarks can be enabled from the clang frontend `[1]`_ `[2]`_
68 in various formats `[3]`_ `[4]`_ to be used by tools, i.a., `opt-viewer` or
69 `llvm-opt-report` (dated).
70
71 The OpenMP optimizations in LLVM have been developed with remark support as a
72 priority. For a list of OpenMP specific remarks and more information on them,
73 please refer to :doc:`remarks/OptimizationRemarks`.
74
75
76 .. _`[1]`: https://clang.llvm.org/docs/UsersManual.html#options-to-emit-optimization-reports
77 .. _`[2]`: https://clang.llvm.org/docs/ClangCommandLineReference.html#diagnostic-flags
78 .. _`[3]`: https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-foptimization-record-file
79 .. _`[4]`: https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang1-fsave-optimization-record
80
81 + `[1]`_ https://clang.llvm.org/docs/UsersManual.html#options-to-emit-optimization-reports
82 + `[2]`_ https://clang.llvm.org/docs/ClangCommandLineReference.html#diagnostic-flags
83 + `[3]`_ https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-foptimization-record-file
84 + `[4]`_ https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang1-fsave-optimization-record
85
86
87 .. toctree::
88    :hidden:
89    :maxdepth: 1
90
91    remarks/OptimizationRemarks
92
93
94 Support, Getting Involved, and Frequently Asked Questions (FAQ)
95 ===============================================================
96
97 Dealing with OpenMP can be complicated. For help with the setup of an OpenMP
98 (offload) capable compiler toolchain, its usage, and common problems, consult
99 the :doc:`Support and FAQ <SupportAndFAQ>` page.
100
101 We also encourage everyone interested in OpenMP in LLVM to :doc:`get involved
102 <SupportAndFAQ>`.
103
104
105 .. toctree::
106    :hidden:
107    :maxdepth: 1
108
109    SupportAndFAQ
110
111 Release Notes
112 =============
113
114 The current (in-progress) release notes can be found :doc:`here <ReleaseNotes>` while
115 release notes for releases, starting with LLVM 12, will be available on `the
116 Download Page <https://releases.llvm.org/download.html>`_.
117
118
119 .. toctree::
120    :hidden:
121    :maxdepth: 1
122
123    In-Progress ReleaseNotes <ReleaseNotes>