aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/SourceManager.cpp
diff options
context:
space:
mode:
authorShilei Tian <i@tianshilei.me>2023-09-06 12:17:45 -0400
committerGitHub <noreply@github.com>2023-09-06 12:17:45 -0400
commit518b08c193cc356f4c85b6402b9352279d37db3a (patch)
tree6f8eb213ae1477838cd64ea98ea352117c1a5ae2 /clang/lib/Basic/SourceManager.cpp
parent08ad327dde9388a41bcf2415ae5211448e9a4907 (diff)
downloadllvm-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