@@ -84,7 +84,7 @@ struct ol_program_impl_t {
8484 DeviceImage (DeviceImage) {}
8585 plugin::DeviceImageTy *Image;
8686 std::unique_ptr<llvm::MemoryBuffer> ImageData;
87- std::vector <std::unique_ptr<ol_symbol_impl_t >> Symbols;
87+ llvm::SmallVector <std::unique_ptr<ol_symbol_impl_t >> Symbols;
8888 std::mutex SymbolListMutex;
8989 __tgt_device_image DeviceImage;
9090};
@@ -96,7 +96,7 @@ struct ol_symbol_impl_t {
9696 : PluginImpl(Global), Kind(OL_SYMBOL_KIND_GLOBAL_VARIABLE), Name(Name) {}
9797 std::variant<GenericKernelTy *, GlobalTy> PluginImpl;
9898 ol_symbol_kind_t Kind;
99- const char * Name;
99+ llvm::StringRef Name;
100100};
101101
102102namespace llvm {
@@ -719,10 +719,9 @@ Error olGetSymbol_impl(ol_program_handle_t Program, const char *Name,
719719 std::lock_guard<std::mutex> Lock{Program->SymbolListMutex };
720720
721721 // If it already exists, return an existing handle
722- auto Check = std::find_if (
723- Program->Symbols .begin (), Program->Symbols .end (), [&](auto &Sym) {
724- return Sym->Kind == Kind && !std::strcmp (Sym->Name , Name);
725- });
722+ auto Check = llvm::find_if (Program->Symbols , [&](auto &Sym) {
723+ return Sym->Kind == Kind && Sym->Name == Name;
724+ });
726725 if (Check != Program->Symbols .end ()) {
727726 *Symbol = Check->get ();
728727 return Error::success ();
0 commit comments