This patch is a follow up on https://reviews.llvm.org/D78759. Extract the HIP Linker script from generic GNU linker, and move it into HIP ToolChain. Update OffloadActionBuilder Link actions feature to apply device linking and host linking actions separately. Using MC Directives, embed the device images and define symbols. Reviewers: JonChesterfield, yaxunl Subscribers: tra, echristo, jdoerfert, msearles, scchan Differential Revision: https://reviews.llvm.org/D81963
44 lines
2.7 KiB
Plaintext
44 lines
2.7 KiB
Plaintext
// REQUIRES: clang-driver
|
|
// REQUIRES: x86-registered-target
|
|
// REQUIRES: amdgpu-registered-target
|
|
|
|
// RUN: %clang -ccc-print-bindings -target x86_64-linux-gnu \
|
|
// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \
|
|
// RUN: -c 2>&1 | FileCheck -check-prefix=NRDCS %s
|
|
// NRDCS: # "amdgcn-amd-amdhsa" - "clang", inputs: ["[[IN:.*hip-binding.hip]]"], output: "[[OBJ1:.*o]]"
|
|
// NRDCS: # "amdgcn-amd-amdhsa" - "AMDGCN::Linker", inputs: ["[[OBJ1]]"], output: "[[IMG1:.*]]"
|
|
// NRDCS: # "amdgcn-amd-amdhsa" - "clang", inputs: ["[[IN:.*hip-binding.hip]]"], output: "[[OBJ2:.*o]]"
|
|
// NRDCS: # "amdgcn-amd-amdhsa" - "AMDGCN::Linker", inputs: ["[[OBJ2]]"], output: "[[IMG2:.*]]"
|
|
// NRDCS: # "amdgcn-amd-amdhsa" - "AMDGCN::Linker", inputs: ["[[IMG1]]", "[[IMG2]]"], output: "[[FATBIN:.*]]"
|
|
// NRDCS: # "x86_64-unknown-linux-gnu" - "clang", inputs: ["[[IN]]", "[[FATBIN]]"], output: "{{.*}}"
|
|
|
|
// RUN: %clang -ccc-print-bindings -target x86_64-linux-gnu \
|
|
// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \
|
|
// RUN: -c -fgpu-rdc 2>&1 | FileCheck -check-prefix=RDCS %s
|
|
// RDCS: # "amdgcn-amd-amdhsa" - "clang", inputs: ["[[IN:.*hip-binding.hip]]"], output: "[[BC1:.*bc]]"
|
|
// RDCS: # "amdgcn-amd-amdhsa" - "clang", inputs: ["[[IN:.*hip-binding.hip]]"], output: "[[BC2:.*bc]]"
|
|
// RDCS: # "x86_64-unknown-linux-gnu" - "clang", inputs: ["[[IN]]"], output: "[[HOSTOBJ:.*o]]"
|
|
// RDCS: # "x86_64-unknown-linux-gnu" - "offload bundler", inputs: ["[[BC1]]", "[[BC2]]", "[[HOSTOBJ]]"], output: "{{.*}}"
|
|
|
|
// RUN: touch %t.o
|
|
// RUN: %clang --hip-link -ccc-print-bindings -target x86_64-linux-gnu \
|
|
// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 -fgpu-rdc %t.o\
|
|
// RUN: 2>&1 | FileCheck %s
|
|
|
|
// CHECK: # "x86_64-unknown-linux-gnu" - "offload bundler", inputs: ["[[IN:.*o]]"], outputs: ["[[HOSTOBJ:.*o]]", "{{.*o}}", "{{.*o}}"]
|
|
// CHECK: # "amdgcn-amd-amdhsa" - "offload bundler", inputs: ["[[IN]]"], outputs: ["{{.*o}}", "[[DOBJ1:.*o]]", "[[DOBJ2:.*o]]"]
|
|
// CHECK: # "amdgcn-amd-amdhsa" - "AMDGCN::Linker", inputs: ["[[DOBJ1]]"], output: "[[IMG1:.*out]]"
|
|
// CHECK-NOT: offload bundler
|
|
// CHECK: # "amdgcn-amd-amdhsa" - "AMDGCN::Linker", inputs: ["[[DOBJ2]]"], output: "[[IMG2:.*out]]"
|
|
// CHECK-NOT: offload bundler
|
|
// CHECK: # "amdgcn-amd-amdhsa" - "AMDGCN::Linker", inputs: ["[[IMG1]]", "[[IMG2]]"], output: "[[FATBINOBJ:.*o]]"
|
|
// CHECK-NOT: offload bundler
|
|
// CHECK: # "x86_64-unknown-linux-gnu" - "GNU::Linker", inputs: ["[[HOSTOBJ]]", "[[FATBINOBJ]]"], output: "a.out"
|
|
|
|
// RUN: %clang --hip-link -ccc-print-bindings -target x86_64-linux-gnu \
|
|
// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %t.o\
|
|
// RUN: 2>&1 | FileCheck -check-prefix=NORDC %s
|
|
|
|
// NORDC-NOT: offload bundler
|
|
// NORDC: # "x86_64-unknown-linux-gnu" - "GNU::Linker", inputs: ["{{.*o}}"], output: "a.out"
|