aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
diff options
context:
space:
mode:
authorJoseph Huber <huberjn@outlook.com>2024-12-02 14:31:51 -0600
committerGitHub <noreply@github.com>2024-12-02 14:31:51 -0600
commit91f5f974cb75309a94c9efc76238ef98abcf1582 (patch)
treef7673cb1e820a83195903735531881a7f79c24ab /llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
parent9b64811e27f8377b77f8561cf678c9d2f2d67393 (diff)
downloadllvm-91f5f974cb75309a94c9efc76238ef98abcf1582.zip
llvm-91f5f974cb75309a94c9efc76238ef98abcf1582.tar.gz
llvm-91f5f974cb75309a94c9efc76238ef98abcf1582.tar.bz2
[OpenMP] Unconditionally provide an RPC client interface for OpenMP (#117933)
Summary: This patch adds an RPC interface that lives directly in the OpenMP device runtime. This allows OpenMP to implement custom opcodes. Currently this is only providing the host call interface, which is the raw version of reverse offloading. Previously this lived in `libc/` as an extension which is not the correct place. The interface here uses a weak symbol for the RPC client by the same name that the `libc` interface uses. This means that it will defer to the libc one if both are present so we don't need to set up multiple instances. The presense of this symbol is what controls whether or not we set up the RPC server. Because this is an external symbol it normally won't be optimized out, so there's a special pass in OpenMPOpt that deletes this symbol if it is unused during linking. That means at `O0` the RPC server will always be present now, but will be removed trivially if it's not used at O1 and higher.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp')
0 files changed, 0 insertions, 0 deletions