[all-commits] [llvm/llvm-project] 168401: [Libomptarget] Introduce new main thread ID runtim...

Joseph Huber via All-commits all-commits at lists.llvm.org
Wed Jul 21 18:18:44 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1684012a47f76e210612bdd44a9d57147a90c4a6
      https://github.com/llvm/llvm-project/commit/1684012a47f76e210612bdd44a9d57147a90c4a6
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2021-07-21 (Wed, 21 Jul 2021)

  Changed paths:
    M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
    M openmp/libomptarget/deviceRTLs/common/src/omptarget.cu
    M openmp/libomptarget/deviceRTLs/interface.h

  Log Message:
  -----------
  [Libomptarget] Introduce new main thread ID runtime function

This patch introduces `__kmpc_is_generic_main_thread_id` which splits the old
comparison into its own runtime function. The purpose of this is so we can fold
this part independently, so when both this and `is_spmd_mode` are folded the
final function will be folded as well.

Reviewed By: jdoerfert

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


  Commit: 4a6686042472a6a3f9d6ca7a0d1bb7f46cbbc415
      https://github.com/llvm/llvm-project/commit/4a6686042472a6a3f9d6ca7a0d1bb7f46cbbc415
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2021-07-21 (Wed, 21 Jul 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
    M openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt

  Log Message:
  -----------
  [OpenMP] Add an option to disable function internalization

Function internalization can sometimes occur in situations where we want to
keep the call sites intact. This patch adds an option to disable function
internalization and prevents the device runtime from being internalized while
creating the bitcode library.

Reviewed By: jdoerfert

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


  Commit: 196fe994b8cccd986f4a63530d494cdd04cd04db
      https://github.com/llvm/llvm-project/commit/196fe994b8cccd986f4a63530d494cdd04cd04db
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2021-07-21 (Wed, 21 Jul 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    A llvm/test/Transforms/OpenMP/fold_generic_main_thread.ll

  Log Message:
  -----------
  [OpenMP] Fold `__kmpc_is_generic_main_thread_id` if possible

This patch adds the ability to fold `__kmpc_is_generic_main_thread_id` if we
know for a fact that it is executed by the initial thread using
AAExecutionDomain. This combined with folding `__kmpc_is_spmd_exec_mode` will
allow us to fully fold `__kmpc_is_generic_main_thread`.

Depends on D106438 D106437

Reviewed By: jdoerfert

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


  Commit: 16206d17cd9e6b473673204c458e5f20bcc59fb1
      https://github.com/llvm/llvm-project/commit/16206d17cd9e6b473673204c458e5f20bcc59fb1
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2021-07-21 (Wed, 21 Jul 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/test/Transforms/OpenMP/add_attributes.ll

  Log Message:
  -----------
  [OpenMP] Strip NoInline from known OpenMP runtime functions

This patch strips the NoInline attribute from known OpenMP runtime functions.
This is done so that we can denote certain runtime functions as NoInline to
ensure their call sites are intact so they can be checked by OpenMPOpt. We
don't wan't this noinline attribute to remain for any functions after OpenMPOpt
has been run however.

Reviewed By: jdoerfert

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


Compare: https://github.com/llvm/llvm-project/compare/7d576392644d...16206d17cd9e


More information about the All-commits mailing list