diff options
author | Shilei Tian <i@tianshilei.me> | 2023-09-06 12:17:45 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-06 12:17:45 -0400 |
commit | 518b08c193cc356f4c85b6402b9352279d37db3a (patch) | |
tree | 6f8eb213ae1477838cd64ea98ea352117c1a5ae2 /clang/lib/Basic/SourceManager.cpp | |
parent | 08ad327dde9388a41bcf2415ae5211448e9a4907 (diff) | |
download | llvm-518b08c193cc356f4c85b6402b9352279d37db3a.zip llvm-518b08c193cc356f4c85b6402b9352279d37db3a.tar.gz llvm-518b08c193cc356f4c85b6402b9352279d37db3a.tar.bz2 |
[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.
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
0 files changed, 0 insertions, 0 deletions