[clang] [clang][CodeGen] Emit referenced __device__ definitions across incremental modules (PR #218784)

Yaxun Liu via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 28 07:00:39 PDT 2026


================
@@ -0,0 +1,16 @@
+// Tests that during incremental HIP device compilation an inline __device__
+// helper referenced by a kernel has its definition emitted into the device
+// module (rather than left as an external declaration). In incremental mode
+// device code objects are not linked together, so a referenced inline/internal
+// __device__ function must be re-emitted into the referencing module.
+
+// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -fcuda-is-device -fincremental-extensions -emit-llvm -o - %s | FileCheck %s
----------------
yxsamliu wrote:

This test compiles the helper and kernel in one module, so it already passes without this change. Could you use two incremental inputs, like `clang/test/Interpreter/CUDA/device-function.cu`, and verify that the helper is emitted in the second module?

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


More information about the cfe-commits mailing list