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