aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorJoseph Huber <huberjn@outlook.com>2024-02-22 12:01:52 -0600
committerGitHub <noreply@github.com>2024-02-22 12:01:52 -0600
commitea174c09342275d6c6fec48fb846eaf28fae5b51 (patch)
treef276c0a89ed3981ba504ac4ef741384644648ffe /clang/lib/CodeGen/CodeGenModule.cpp
parente630a451b457e4d8d071a2b4f102b342bbea2d02 (diff)
downloadllvm-ea174c09342275d6c6fec48fb846eaf28fae5b51.zip
llvm-ea174c09342275d6c6fec48fb846eaf28fae5b51.tar.gz
llvm-ea174c09342275d6c6fec48fb846eaf28fae5b51.tar.bz2
[Libomptarget] Remove global ctor and use reference counting (#80499)
Summary: Currently we rely on global constructors to initialize and shut down the OpenMP runtime library and plugin manager. This causes some issues because we do not have a defined lifetime that we can rely on to release and allocate resources. This patch instead adds some simple reference counted initialization and deinitialization function. A future patch will use the `deinit` interface to more intelligently handle plugin deinitilization. Right now we do nothing and rely on `atexit` inside of the plugins to tear them down. This isn't great because it limits our ability to control these things. Note that I made the `__tgt_register_lib` functions do the initialization instead of adding calls to the new runtime functions in the linker wrapper. The reason for this is because in the past it's been easier to not introduce a new function call, since sometimes the user's compiler will link against an older `libomptarget`. Maybe if we change the name with offloading in the future we can simplify this. Depends on https://github.com/llvm/llvm-project/pull/80460
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions