50 lines
1.7 KiB
Diff
50 lines
1.7 KiB
Diff
Vanilla LLVM does not support calling AMDGPU_KERNEL across different sources/bitcodes.
|
|
Without this patch https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/issues/45 occurs.
|
|
Reference: https://github.com/llvm/llvm-project/issues/60313
|
|
===================================================================
|
|
Index: comgr/test/source/source1.cl
|
|
===================================================================
|
|
--- comgr.orig/test/source/source1.cl
|
|
+++ comgr/test/source/source1.cl
|
|
@@ -35,7 +35,9 @@
|
|
|
|
#include "include-a.h"
|
|
|
|
+void kernel source3(__global int *j) { *j = FOO; }
|
|
+
|
|
void kernel source1(__global int *j) {
|
|
*j += 2;
|
|
- source2(j);
|
|
+ source3(j);
|
|
}
|
|
Index: comgr/test/mangled_names_test.c
|
|
===================================================================
|
|
--- comgr.orig/test/mangled_names_test.c
|
|
+++ comgr/test/mangled_names_test.c
|
|
@@ -162,7 +162,7 @@ int main(int argc, char *argv[]) {
|
|
exit(1);
|
|
}
|
|
|
|
- const char *bcNames[] = {"source1", "source2"};
|
|
+ const char *bcNames[] = {"source3", "source1"};
|
|
|
|
for (size_t I = 0; I < numNames; ++I) {
|
|
size_t Size;
|
|
@@ -249,14 +249,14 @@ int main(int argc, char *argv[]) {
|
|
|
|
Status = amd_comgr_populate_mangled_names(DataExec, &numNames);
|
|
|
|
- if (numNames != 4) {
|
|
+ if (numNames != 6) {
|
|
printf("amd_populate_mangled_names Failed: "
|
|
- "produced %zu executable names (expected 4)\n",
|
|
+ "produced %zu executable names (expected 6)\n",
|
|
Count);
|
|
exit(1);
|
|
}
|
|
|
|
- const char *execNames[] = {"source1", "source1.kd", "source2", "source2.kd"};
|
|
+ const char *execNames[] = {"source3", "source3.kd", "source1", "source1.kd", "source2", "source2.kd"};
|
|
|
|
for (size_t I = 0; I < numNames; ++I) {
|
|
size_t Size;
|