[clang] [clang-sycl-linker] Generate SymbolTable for each image (PR #161287)

Yury Plyakhin via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 29 18:09:48 PDT 2025


================
@@ -486,6 +492,22 @@ Error runSYCLLink(ArrayRef<std::string> Files, const ArgList &Args) {
   SmallVector<std::string> SplitModules;
   SplitModules.emplace_back(*LinkedFile);
 
+  // Generate symbol table.
+  SmallVector<std::string> SymbolTable;
+  for (size_t I = 0, E = SplitModules.size(); I != E; ++I) {
+    Expected<std::unique_ptr<Module>> ModOrErr =
+        getBitcodeModule(SplitModules[I], C);
+    if (!ModOrErr)
+      return ModOrErr.takeError();
+
+    SmallVector<StringRef> Symbols;
+    for (Function &F : **ModOrErr) {
+      if (isKernel(F))
+        Symbols.push_back(F.getName());
+    }
+    SymbolTable.emplace_back(llvm::join(Symbols.begin(), Symbols.end(), "\n"));
----------------
YuriPlyakhin wrote:

looks like duplicated question, so I'll mark it as resolved.

https://github.com/llvm/llvm-project/pull/161287


More information about the cfe-commits mailing list