[all-commits] [llvm/llvm-project] 518b08: [OpenMP] Fix issue of indirect function call in `_...

Shilei Tian via All-commits all-commits at lists.llvm.org
Wed Sep 6 09:17:59 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 518b08c193cc356f4c85b6402b9352279d37db3a
      https://github.com/llvm/llvm-project/commit/518b08c193cc356f4c85b6402b9352279d37db3a
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2023-09-06 (Wed, 06 Sep 2023)

  Changed paths:
    M openmp/runtime/src/kmp_csupport.cpp

  Log Message:
  -----------
  [OpenMP] Fix issue of indirect function call in `__kmpc_fork_call_if` (#65436)

The outlined function is typically invoked by using
`__kmp_invoke_microtask`,
which is written in asm. D138495 introduces a new interface function for
parallel
region for OpenMPIRBuilder, where the outlined function is called via
the function
pointer. For some reason, it works perfectly well on x86 and x86-64
system, but
doesn't work on Apple Silicon. The 3rd argument in the callee is always
`nullptr`, even
if it is not in caller. It appears `x2` always contains `0x0`. This
patch adopts
the typical method to invoke the function pointer. It works on my M2
Ultra Mac.

Fix #63194.




More information about the All-commits mailing list