[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