[llvm] [Offload] Cache symbols in program (PR #148209)
Shilei Tian via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 11 09:02:07 PDT 2025
================
@@ -85,16 +85,18 @@ struct ol_program_impl_t {
plugin::DeviceImageTy *Image;
std::unique_ptr<llvm::MemoryBuffer> ImageData;
std::vector<std::unique_ptr<ol_symbol_impl_t>> Symbols;
+ std::mutex SymbolListMutex;
__tgt_device_image DeviceImage;
};
struct ol_symbol_impl_t {
- ol_symbol_impl_t(GenericKernelTy *Kernel)
- : PluginImpl(Kernel), Kind(OL_SYMBOL_KIND_KERNEL) {}
- ol_symbol_impl_t(GlobalTy &&Global)
- : PluginImpl(Global), Kind(OL_SYMBOL_KIND_GLOBAL_VARIABLE) {}
+ ol_symbol_impl_t(const char *Name, GenericKernelTy *Kernel)
+ : PluginImpl(Kernel), Kind(OL_SYMBOL_KIND_KERNEL), Name(Name) {}
+ ol_symbol_impl_t(const char *Name, GlobalTy &&Global)
+ : PluginImpl(Global), Kind(OL_SYMBOL_KIND_GLOBAL_VARIABLE), Name(Name) {}
std::variant<GenericKernelTy *, GlobalTy> PluginImpl;
ol_symbol_kind_t Kind;
+ const char *Name;
----------------
shiltian wrote:
I think we should use `StringRef` here and then avoid any C style thingy in the code, such as `strcmp`.
https://github.com/llvm/llvm-project/pull/148209
More information about the llvm-commits
mailing list