[clang] [HIP] Emit the CUID value in the module with the new driver (PR #144570)
Joseph Huber via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 17 10:19:08 PDT 2025
https://github.com/jhuber6 created https://github.com/llvm/llvm-project/pull/144570
Summary:
This is a weird point of divergence, which is also apparently critical
for SPIR-V compilation not failing? Somehow if we don't emit this global
than the `llvm.compiler.used` global uses AS(0) which makes SPIR-V
unhappy, but with this global it's AS(4) which makes it happy. Either
way, this should be fixed.
>From 02fa317d90df7879289f693453c3dda71624ed46 Mon Sep 17 00:00:00 2001
From: Joseph Huber <huberjn at outlook.com>
Date: Tue, 17 Jun 2025 12:03:01 -0500
Subject: [PATCH] [HIP] Emit the CUID value in the module with the new driver
Summary:
This is a weird point of divergence, which is also apparently critical
for SPIR-V compilation not failing? Somehow if we don't emit this global
than the `llvm.compiler.used` global uses AS(0) which makes SPIR-V
unhappy, but with this global it's AS(4) which makes it happy. Either
way, this should be fixed.
---
clang/lib/CodeGen/CodeGenModule.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index c036902b0b130..0f075b747eacf 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -969,7 +969,7 @@ void CodeGenModule::Release() {
llvm::ConstantArray::get(ATy, UsedArray), "__clang_gpu_used_external");
addCompilerUsedGlobal(GV);
}
- if (LangOpts.HIP && !getLangOpts().OffloadingNewDriver) {
+ if (LangOpts.HIP) {
// Emit a unique ID so that host and device binaries from the same
// compilation unit can be associated.
auto *GV = new llvm::GlobalVariable(
More information about the cfe-commits
mailing list