[PATCH] D116840: [HIP] Fix device only linking for -fgpu-rdc
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG98ab43a1d209: [HIP] Fix device only linking for -fgpu-rdc (authored by yaxunl). Herald added a project: clang. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116840/new/ https://reviews.llvm.org/D116840 Files: clang/lib/Driver/Driver.cpp clang/test/Driver/hip-phases.hip clang/test/Driver/hip-toolchain-rdc-separate.hip Index: clang/test/Driver/hip-toolchain-rdc-separate.hip === --- clang/test/Driver/hip-toolchain-rdc-separate.hip +++ clang/test/Driver/hip-toolchain-rdc-separate.hip @@ -88,47 +88,66 @@ // RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \ // RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \ // RUN: %T/a.o %T/b.o \ -// RUN: 2>&1 | FileCheck -check-prefix=LINK %s +// RUN: 2>&1 | FileCheck -check-prefixes=LINK,LINK-HOST-UNBUNDLE,LLD-TMP,LINK-BUNDLE,LINK-EMBED %s -// LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" -// LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[A_O:.*a.o]]" "-outputs=[[A_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" -// LINK: "-unbundle" "-allow-missing-bundles" +// RUN: %clang --hip-link -### -target x86_64-linux-gnu \ +// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \ +// RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \ +// RUN: %T/a.o %T/b.o --cuda-device-only \ +// RUN: 2>&1 | FileCheck -check-prefixes=LINK,LLD-TMP,LINK-BUNDLE,LINK-NOEMBED %s -// LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" -// LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[B_O:.*b.o]]" "-outputs=[[B_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" -// LINK: "-unbundle" "-allow-missing-bundles" +// RUN: %clang --hip-link -### -target x86_64-linux-gnu \ +// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \ +// RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \ +// RUN: %T/a.o %T/b.o --cuda-device-only --no-gpu-bundle-output \ +// RUN: 2>&1 | FileCheck -check-prefixes=LINK,LLD-FIN,LINK-NOBUNDLE,LINK-NOEMBED %s + +// LINK-HOST-UNBUNDLE: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" +// LINK-HOST-UNBUNDLE-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" +// LINK-HOST-UNBUNDLE-SAME: "-inputs=[[A_O:.*a.o]]" "-outputs=[[A_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" +// LINK-HOST-UNBUNDLE: "-unbundle" "-allow-missing-bundles" + +// LINK-HOST-UNBUNDLE: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" +// LINK-HOST-UNBUNDLE-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" +// LINK-HOST-UNBUNDLE-SAME: "-inputs=[[B_O:.*b.o]]" "-outputs=[[B_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" +// LINK-HOST-UNBUNDLE: "-unbundle" "-allow-missing-bundles" // LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" // LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[A_O]]" "-outputs={{.*o}},[[A_BC1:.*o]],[[A_BC2:.*o]]" -// LINK: "-unbundle" "-allow-missing-bundles" +// LINK-SAME: "-inputs=[[A_O:.*a.o]]" "-outputs={{.*o}},[[A_BC1:.*o]],[[A_BC2:.*o]]" +// LINK-SAME: "-unbundle" "-allow-missing-bundles" // LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" // LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[B_O]]" "-outputs={{.*o}},[[B_BC1:.*o]],[[B_BC2:.*o]]" -// LINK: "-unbundle" "-allow-missing-bundles" +// LINK-SAME: "-inputs=[[B_O:.*b.o]]" "-outputs={{.*o}},[[B_BC1:.*o]],[[B_BC2:.*o]]" +// LINK-SAME: "-unbundle" "-allow-missing-bundles" // LINK-NOT: "*.llvm-link" // LINK-NOT: ".*opt" // LINK-NOT: ".*llc" // LINK: {{".*lld.*"}} {{.*}} "-plugin-opt=-amdgpu-internalize-symbols" -// LINK: "-plugin-opt=mcpu=gfx803" -// LINK-SAME: "-o" "[[IMG_DEV1:.*.out]]" "[[A_BC1]]" "[[B_BC1]]" +// LINK-SAME: "-plugin-opt=mcpu=gfx803" +// LLD-TMP-SAME: "-o" "[[IMG_DEV1:.*.out]]" +// LLD-FIN-SAME: "-o" "[[IMG_DEV1:a.out-.*gfx803]]" +// LINK-SAME "[[A_BC1]]" "[[B_BC1]]" // LINK-NOT: "*.llvm-link" // LINK-NOT: ".*opt" // LINK-NOT: ".*llc" // LINK: {{".*lld.*"}} {{.*}} "-plugin-opt=-amdgpu-internalize-symbols" -// LINK: "-plugin-opt=mcpu=gfx900" -// LINK-SAME: "-o" "[[IMG_DEV2:.*.out]]" "[[A_BC2]]" "[[B_BC2]]" - -// LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" -// LINK-SAME: "-targets={{.*}},hipv4-amdgcn-amd-amdhsa--gfx803,hipv4-amdgcn-amd-amdhsa--gfx900" -// LINK-SAME: "-inputs={{.*}},[[IMG_DEV1]],[[IMG_DEV2]]" "-outputs=[[BUNDLE:.*hipfb]]" - -// LINK: {{".*llvm-mc.*"}} "-o" "[[OBJBUNDLE:.*o]]" "{{.*}}.mcin" "--filetype=obj" - -// LINK: [[LD:".*ld.*"]] {{.*}} "-o" "a.out" {{.*}} "[[A_OBJ_HOST]]" -// LINK-SAME: "[[B_OBJ_HOST]]"
[PATCH] D116840: [HIP] Fix device only linking for -fgpu-rdc
yaxunl updated this revision to Diff 398662. yaxunl added a comment. avoid clearing AL CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116840/new/ https://reviews.llvm.org/D116840 Files: clang/lib/Driver/Driver.cpp clang/test/Driver/hip-phases.hip clang/test/Driver/hip-toolchain-rdc-separate.hip Index: clang/test/Driver/hip-toolchain-rdc-separate.hip === --- clang/test/Driver/hip-toolchain-rdc-separate.hip +++ clang/test/Driver/hip-toolchain-rdc-separate.hip @@ -88,47 +88,66 @@ // RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \ // RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \ // RUN: %T/a.o %T/b.o \ -// RUN: 2>&1 | FileCheck -check-prefix=LINK %s +// RUN: 2>&1 | FileCheck -check-prefixes=LINK,LINK-HOST-UNBUNDLE,LLD-TMP,LINK-BUNDLE,LINK-EMBED %s -// LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" -// LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[A_O:.*a.o]]" "-outputs=[[A_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" -// LINK: "-unbundle" "-allow-missing-bundles" +// RUN: %clang --hip-link -### -target x86_64-linux-gnu \ +// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \ +// RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \ +// RUN: %T/a.o %T/b.o --cuda-device-only \ +// RUN: 2>&1 | FileCheck -check-prefixes=LINK,LLD-TMP,LINK-BUNDLE,LINK-NOEMBED %s -// LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" -// LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[B_O:.*b.o]]" "-outputs=[[B_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" -// LINK: "-unbundle" "-allow-missing-bundles" +// RUN: %clang --hip-link -### -target x86_64-linux-gnu \ +// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \ +// RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \ +// RUN: %T/a.o %T/b.o --cuda-device-only --no-gpu-bundle-output \ +// RUN: 2>&1 | FileCheck -check-prefixes=LINK,LLD-FIN,LINK-NOBUNDLE,LINK-NOEMBED %s + +// LINK-HOST-UNBUNDLE: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" +// LINK-HOST-UNBUNDLE-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" +// LINK-HOST-UNBUNDLE-SAME: "-inputs=[[A_O:.*a.o]]" "-outputs=[[A_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" +// LINK-HOST-UNBUNDLE: "-unbundle" "-allow-missing-bundles" + +// LINK-HOST-UNBUNDLE: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" +// LINK-HOST-UNBUNDLE-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" +// LINK-HOST-UNBUNDLE-SAME: "-inputs=[[B_O:.*b.o]]" "-outputs=[[B_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" +// LINK-HOST-UNBUNDLE: "-unbundle" "-allow-missing-bundles" // LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" // LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[A_O]]" "-outputs={{.*o}},[[A_BC1:.*o]],[[A_BC2:.*o]]" -// LINK: "-unbundle" "-allow-missing-bundles" +// LINK-SAME: "-inputs=[[A_O:.*a.o]]" "-outputs={{.*o}},[[A_BC1:.*o]],[[A_BC2:.*o]]" +// LINK-SAME: "-unbundle" "-allow-missing-bundles" // LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" // LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[B_O]]" "-outputs={{.*o}},[[B_BC1:.*o]],[[B_BC2:.*o]]" -// LINK: "-unbundle" "-allow-missing-bundles" +// LINK-SAME: "-inputs=[[B_O:.*b.o]]" "-outputs={{.*o}},[[B_BC1:.*o]],[[B_BC2:.*o]]" +// LINK-SAME: "-unbundle" "-allow-missing-bundles" // LINK-NOT: "*.llvm-link" // LINK-NOT: ".*opt" // LINK-NOT: ".*llc" // LINK: {{".*lld.*"}} {{.*}} "-plugin-opt=-amdgpu-internalize-symbols" -// LINK: "-plugin-opt=mcpu=gfx803" -// LINK-SAME: "-o" "[[IMG_DEV1:.*.out]]" "[[A_BC1]]" "[[B_BC1]]" +// LINK-SAME: "-plugin-opt=mcpu=gfx803" +// LLD-TMP-SAME: "-o" "[[IMG_DEV1:.*.out]]" +// LLD-FIN-SAME: "-o" "[[IMG_DEV1:a.out-.*gfx803]]" +// LINK-SAME "[[A_BC1]]" "[[B_BC1]]" // LINK-NOT: "*.llvm-link" // LINK-NOT: ".*opt" // LINK-NOT: ".*llc" // LINK: {{".*lld.*"}} {{.*}} "-plugin-opt=-amdgpu-internalize-symbols" -// LINK: "-plugin-opt=mcpu=gfx900" -// LINK-SAME: "-o" "[[IMG_DEV2:.*.out]]" "[[A_BC2]]" "[[B_BC2]]" - -// LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" -// LINK-SAME: "-targets={{.*}},hipv4-amdgcn-amd-amdhsa--gfx803,hipv4-amdgcn-amd-amdhsa--gfx900" -// LINK-SAME: "-inputs={{.*}},[[IMG_DEV1]],[[IMG_DEV2]]" "-outputs=[[BUNDLE:.*hipfb]]" - -// LINK: {{".*llvm-mc.*"}} "-o" "[[OBJBUNDLE:.*o]]" "{{.*}}.mcin" "--filetype=obj" - -// LINK: [[LD:".*ld.*"]] {{.*}} "-o" "a.out" {{.*}} "[[A_OBJ_HOST]]" -// LINK-SAME: "[[B_OBJ_HOST]]" "[[OBJBUNDLE]]" +// LINK-SAME: "-plugin-opt=mcpu=gfx900" +// LLD-TMP-SAME: "-o" "[[IMG_DEV2:.*.out]]" +// LLD-FIN-SAME: "-o" "[[IMG_DEV1:a.out-.*gfx900]]" +// LINK-SAME "[[A_BC2]]" "[[B_BC2]]" + +// LINK-BUNDLE:
[PATCH] D116840: [HIP] Fix device only linking for -fgpu-rdc
yaxunl added inline comments. Comment at: clang/lib/Driver/Driver.cpp:3173 + AssociatedOffloadKind); +AL.clear(); +// Offload the host object to the host linker. tra wrote: > Doing `clear()` in a function intended to append looks suspicious. > We may potentially discard whatever was in AL on entry to the function, plus > whatever has been added per `DeviceLinkerInputs`. > > I wonder if a better API would be to return a new action list, instead of > modifying one. > > At the very least I'd like to see a comment explaining what's going on here > and, maybe, some assertions (e.g. if we expect AL to be empty on entry). Good point. What we want to do here is that if bundling is disabled, append link actions, otherwise create a bundle action with link actions as input, then append bundle action. I will save link actions to some temporary action list instead of using `AL`. Then I can avoid clear previous entries in `AL` unintentionally. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116840/new/ https://reviews.llvm.org/D116840 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D116840: [HIP] Fix device only linking for -fgpu-rdc
tra added inline comments. Comment at: clang/lib/Driver/Driver.cpp:3173 + AssociatedOffloadKind); +AL.clear(); +// Offload the host object to the host linker. Doing `clear()` in a function intended to append looks suspicious. We may potentially discard whatever was in AL on entry to the function, plus whatever has been added per `DeviceLinkerInputs`. I wonder if a better API would be to return a new action list, instead of modifying one. At the very least I'd like to see a comment explaining what's going on here and, maybe, some assertions (e.g. if we expect AL to be empty on entry). CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116840/new/ https://reviews.llvm.org/D116840 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D116840: [HIP] Fix device only linking for -fgpu-rdc
yaxunl created this revision. yaxunl added a reviewer: tra. yaxunl requested review of this revision. Currently when -fgpu-rdc is specified, HIP toolchain always does host linking even if --cuda-device-only is specified. This patch fixes that. Only device linking is performed when --cuda-device-only is specified. https://reviews.llvm.org/D116840 Files: clang/lib/Driver/Driver.cpp clang/test/Driver/hip-phases.hip clang/test/Driver/hip-toolchain-rdc-separate.hip Index: clang/test/Driver/hip-toolchain-rdc-separate.hip === --- clang/test/Driver/hip-toolchain-rdc-separate.hip +++ clang/test/Driver/hip-toolchain-rdc-separate.hip @@ -88,47 +88,66 @@ // RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \ // RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \ // RUN: %T/a.o %T/b.o \ -// RUN: 2>&1 | FileCheck -check-prefix=LINK %s +// RUN: 2>&1 | FileCheck -check-prefixes=LINK,LINK-HOST-UNBUNDLE,LLD-TMP,LINK-BUNDLE,LINK-EMBED %s -// LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" -// LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[A_O:.*a.o]]" "-outputs=[[A_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" -// LINK: "-unbundle" "-allow-missing-bundles" +// RUN: %clang --hip-link -### -target x86_64-linux-gnu \ +// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \ +// RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \ +// RUN: %T/a.o %T/b.o --cuda-device-only \ +// RUN: 2>&1 | FileCheck -check-prefixes=LINK,LLD-TMP,LINK-BUNDLE,LINK-NOEMBED %s -// LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" -// LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[B_O:.*b.o]]" "-outputs=[[B_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" -// LINK: "-unbundle" "-allow-missing-bundles" +// RUN: %clang --hip-link -### -target x86_64-linux-gnu \ +// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \ +// RUN: -fuse-ld=lld -fgpu-rdc -nogpuinc \ +// RUN: %T/a.o %T/b.o --cuda-device-only --no-gpu-bundle-output \ +// RUN: 2>&1 | FileCheck -check-prefixes=LINK,LLD-FIN,LINK-NOBUNDLE,LINK-NOEMBED %s + +// LINK-HOST-UNBUNDLE: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" +// LINK-HOST-UNBUNDLE-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" +// LINK-HOST-UNBUNDLE-SAME: "-inputs=[[A_O:.*a.o]]" "-outputs=[[A_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" +// LINK-HOST-UNBUNDLE: "-unbundle" "-allow-missing-bundles" + +// LINK-HOST-UNBUNDLE: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" +// LINK-HOST-UNBUNDLE-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" +// LINK-HOST-UNBUNDLE-SAME: "-inputs=[[B_O:.*b.o]]" "-outputs=[[B_OBJ_HOST:.*o]],{{.*o}},{{.*o}}" +// LINK-HOST-UNBUNDLE: "-unbundle" "-allow-missing-bundles" // LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" // LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[A_O]]" "-outputs={{.*o}},[[A_BC1:.*o]],[[A_BC2:.*o]]" -// LINK: "-unbundle" "-allow-missing-bundles" +// LINK-SAME: "-inputs=[[A_O:.*a.o]]" "-outputs={{.*o}},[[A_BC1:.*o]],[[A_BC2:.*o]]" +// LINK-SAME: "-unbundle" "-allow-missing-bundles" // LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" // LINK-SAME: "-targets=host-x86_64-unknown-linux-gnu,hip-amdgcn-amd-amdhsa-gfx803,hip-amdgcn-amd-amdhsa-gfx900" -// LINK-SAME: "-inputs=[[B_O]]" "-outputs={{.*o}},[[B_BC1:.*o]],[[B_BC2:.*o]]" -// LINK: "-unbundle" "-allow-missing-bundles" +// LINK-SAME: "-inputs=[[B_O:.*b.o]]" "-outputs={{.*o}},[[B_BC1:.*o]],[[B_BC2:.*o]]" +// LINK-SAME: "-unbundle" "-allow-missing-bundles" // LINK-NOT: "*.llvm-link" // LINK-NOT: ".*opt" // LINK-NOT: ".*llc" // LINK: {{".*lld.*"}} {{.*}} "-plugin-opt=-amdgpu-internalize-symbols" -// LINK: "-plugin-opt=mcpu=gfx803" -// LINK-SAME: "-o" "[[IMG_DEV1:.*.out]]" "[[A_BC1]]" "[[B_BC1]]" +// LINK-SAME: "-plugin-opt=mcpu=gfx803" +// LLD-TMP-SAME: "-o" "[[IMG_DEV1:.*.out]]" +// LLD-FIN-SAME: "-o" "[[IMG_DEV1:a.out-.*gfx803]]" +// LINK-SAME "[[A_BC1]]" "[[B_BC1]]" // LINK-NOT: "*.llvm-link" // LINK-NOT: ".*opt" // LINK-NOT: ".*llc" // LINK: {{".*lld.*"}} {{.*}} "-plugin-opt=-amdgpu-internalize-symbols" -// LINK: "-plugin-opt=mcpu=gfx900" -// LINK-SAME: "-o" "[[IMG_DEV2:.*.out]]" "[[A_BC2]]" "[[B_BC2]]" - -// LINK: [[BUNDLER:".*clang-offload-bundler"]] "-type=o" -// LINK-SAME: "-targets={{.*}},hipv4-amdgcn-amd-amdhsa--gfx803,hipv4-amdgcn-amd-amdhsa--gfx900" -// LINK-SAME: "-inputs={{.*}},[[IMG_DEV1]],[[IMG_DEV2]]" "-outputs=[[BUNDLE:.*hipfb]]" - -// LINK: {{".*llvm-mc.*"}} "-o" "[[OBJBUNDLE:.*o]]" "{{.*}}.mcin" "--filetype=obj" - -// LINK: [[LD:".*ld.*"]] {{.*}} "-o" "a.out" {{.*}} "[[A_OBJ_HOST]]" -// LINK-SAME: "[[B_OBJ_HOST]]" "[[OBJBUNDLE]]" +// LINK-SAME: