aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/StringRef.cpp
diff options
context:
space:
mode:
authorJohannes Doerfert <johannes@jdoerfert.de>2023-01-04 11:33:44 -0800
committerJohannes Doerfert <johannes@jdoerfert.de>2023-01-15 11:43:50 -0800
commitf8e094be8166443383f84831a406960a49281f04 (patch)
tree98877ab25bc09479876637f5efdcadb26fb71748 /llvm/lib/Support/StringRef.cpp
parent158aa99d39a27e5008293ab7148ec6c403f7fc8f (diff)
downloadllvm-f8e094be8166443383f84831a406960a49281f04.zip
llvm-f8e094be8166443383f84831a406960a49281f04.tar.gz
llvm-f8e094be8166443383f84831a406960a49281f04.tar.bz2
[OpenMP][JIT] Cleanup JIT interface, caching, and races
The JIT interface was somewhat irregular as it used multiple global functions. It also did not cache the results of the JIT, hence multiple GPU systems would perform the work multiple times. Finally, there might have been races on the state if we have multi-threaded initialization of different embedded images, or one image initialized on multiple devices. This patch tries to rectify all of the above. The JITEngine is now a part of the GenericPluginTy and tied to one target triple. To support multiple "ComputeUnitKind"s (previously confusingly called Arch or [M]CPU) and to avoid re-jitting for the same ComputeUnitKind, we keep a map of JIT results per ComputeUnitKind. All interaction with the JIT happens through the JITEngine directly, two functions are exposed. Both use (shared) locks to avoid races and cache the result. All JIT-related environment variables are now defined together. Differential Revision: https://reviews.llvm.org/D141081
Diffstat (limited to 'llvm/lib/Support/StringRef.cpp')
0 files changed, 0 insertions, 0 deletions