===========================
OpenMP 12.0.0 Release Notes
===========================


.. warning::
   These are in-progress notes for the upcoming LLVM 12.0.0 release.
   Release notes for previous releases can be found on
   `the Download Page <https://releases.llvm.org/download.html>`_.
   

Introduction
============

This document contains the release notes for the OpenMP runtime, release 12.0.0.
Here we describe the status of OpenMP, including major improvements
from the previous release. All OpenMP releases may be downloaded
from the `LLVM releases web site <https://llvm.org/releases/>`_.

Non-comprehensive list of changes in this release
=================================================

- Extended the ``libomptarget`` API functions to include source location
  information and OpenMP target mapper support. This allows ``libomptarget`` to
  know the source location of the OpenMP region it is executing, as well as the
  name and declarations of all the variables used inside the region. Each
  function generated now uses its ``mapper`` variant. The old API calls now call
  into the new API functions with ``nullptr`` arguments for backwards
  compatibility with old binaries. Source location information for
  ``libomptarget`` is now generated by Clang at any level of debugging
  information.

- Added improved error messages for ``libomptarget`` and ``CUDA`` plugins. Error
  messages are now presented without requiring a debug build of
  ``libomptarget``. The newly added source location information can also be used
  to identify which OpenMP target region the failure occurred in. More
  information can be found :ref:`here <libopenmptarget_errors>`.

- Added additional environment variables to control output from the
  ``libomptarget`` runtime library. ``LIBOMPTARGET_PROFILE`` to
  generate time profile output similar to Clang's ``-ftime-trace`` option.
  ``LIBOMPTARGET_MEMORY_MANAGER_THRESHOLD`` sets the threshold size for which
  the ``libomptarget`` memory manager will handle the allocation.
  ``LIBOMPTARGET_INFO`` allows the user to request certain information from the
  ``libomptarget`` runtime using a 32-bit field. A full description of each
  environment variable is described :ref:`here <libopenmptarget_environment_vars>`.
