[all-commits] [llvm/llvm-project] e2069b: [OpenMP] Make isDone lightweight without calling s...

Ye Luo via All-commits all-commits at lists.llvm.org
Fri Feb 17 18:46:13 PST 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e2069be83ea88837e1d3bb710aff17cd84ee7b7e
  Author: Ye Luo <yeluo at anl.gov>
  Date:   2023-02-17 (Fri, 17 Feb 2023)

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

  Log Message:
  [OpenMP] Make isDone lightweight without calling synchronize

~TaskAsyncInfoWrapperTy() calls isDone. With synchronize inside isDone, we need to handle the error return from synchronize in the destructor.
The consumers of TaskAsyncInfoWrapperTy, targetDataMapper and targetKernel, both call AsyncInfo.synchronize() before exiting.
For this reason in ~TaskAsyncInfoWrapperTy(), calling synchronize() via isDone() is redundant.
This patch removes synchronize() call inside isDone() and makes it a lightweight check.
__tgt_target_nowait_query needs to call synchronize() before checking isDone().

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

More information about the All-commits mailing list