[all-commits] [llvm/llvm-project] 2518cc: [OpenMP][FIX] Avoid use of stack allocations in as...

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Tue Feb 16 13:38:28 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2518cc65d2a7564bb49d7b806f23dd47212dcefd
      https://github.com/llvm/llvm-project/commit/2518cc65d2a7564bb49d7b806f23dd47212dcefd
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2021-02-16 (Tue, 16 Feb 2021)

  Changed paths:
    M openmp/libomptarget/include/omptarget.h
    M openmp/libomptarget/src/omptarget.cpp

  Log Message:
  -----------
  [OpenMP][FIX] Avoid use of stack allocations in asynchronous calls

As reported by Guilherme Valarini [0], we used to pass stack allocations
to calls that can nowadays be asynchronous. This is arguably a problem
and it will inevitably result in UB. To remedy the situation we
allocate the locations as part of the AsyncInfoTy object. The lifetime
of that object matches what we need for now. If the synchronization is
not tied to the AsyncInfoTy object anymore we might need to have a
different buffer construct in global space.

This should be back-ported to LLVM 12 but needs slight modifications as
it is based on refactoring patches we do not need to backport.

[0] https://lists.llvm.org/pipermail/openmp-dev/2021-February/003867.html

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D96667




More information about the All-commits mailing list