[llvm] [OFFLOAD][L0] Restore function pointer lookup. (PR #211520)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 23 03:54:04 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-offload
Author: Alex Duran (adurang)
<details>
<summary>Changes</summary>
PR #<!-- -->201352 incorrectly removed the calls to zeModuleGetGlobalPointer when looking up a symbol.
---
Full diff: https://github.com/llvm/llvm-project/pull/211520.diff
1 Files Affected:
- (modified) offload/plugins-nextgen/level_zero/src/L0Program.cpp (+12-4)
``````````diff
diff --git a/offload/plugins-nextgen/level_zero/src/L0Program.cpp b/offload/plugins-nextgen/level_zero/src/L0Program.cpp
index ea1c2792e608a..f892e99cd05f9 100644
--- a/offload/plugins-nextgen/level_zero/src/L0Program.cpp
+++ b/offload/plugins-nextgen/level_zero/src/L0Program.cpp
@@ -557,13 +557,21 @@ Error L0ProgramTy::getSymbolMetadata(const char *Name, void **AddrPtr,
void *SymbolAddr = nullptr;
ze_result_t RC;
for (auto Module : Modules) {
+ auto SetResults = [&](void *Addr, size_t Size) {
+ if (AddrPtr)
+ *AddrPtr = Addr;
+ if (SizePtr)
+ *SizePtr = Size;
+ };
CALL_ZE(RC, zeModuleGetGlobalPointer, Module, Name, &SymbolSize,
&SymbolAddr);
if (RC == ZE_RESULT_SUCCESS && SymbolAddr) {
- if (AddrPtr)
- *AddrPtr = SymbolAddr;
- if (SizePtr)
- *SizePtr = SymbolSize;
+ SetResults(SymbolAddr, SymbolSize);
+ return Plugin::success();
+ }
+ CALL_ZE(RC, zeModuleGetFunctionPointer, Module, Name, &SymbolAddr);
+ if (RC == ZE_RESULT_SUCCESS && SymbolAddr) {
+ SetResults(SymbolAddr, 0);
return Plugin::success();
}
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/211520
More information about the llvm-commits
mailing list