From bc0fa1d5d54aa0b04e621e51c661f4203b3f2c2b Mon Sep 17 00:00:00 2001 From: Yaxun Liu Date: Tue, 28 Aug 2018 21:09:09 +0000 Subject: [PATCH] [HIP] Fix output file extension OffloadBundlingJobAction constructor accepts a list of JobAction as inputs. The host JobAction is the last one. The file type of OffloadBundlingJobAction should be determined by the host JobAction (the last one) instead of the first one. Since HIP emits LLVM bitcode for device compilation, device JobAction has different file type as host Job Action. This bug causes incorrect output file extension for HIP. This patch fixes it by using the last input JobAction (host JobAction) to determine file type of OffloadBundlingJobAction. Differential Revision: https://reviews.llvm.org/D51336 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@340873 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Driver/Action.cpp | 2 +- test/Driver/hip-output-file-name.hip | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 test/Driver/hip-output-file-name.hip diff --git a/lib/Driver/Action.cpp b/lib/Driver/Action.cpp index 99d588d9c0..f909043875 100644 --- a/lib/Driver/Action.cpp +++ b/lib/Driver/Action.cpp @@ -382,7 +382,7 @@ VerifyPCHJobAction::VerifyPCHJobAction(Action *Input, types::ID Type) void OffloadBundlingJobAction::anchor() {} OffloadBundlingJobAction::OffloadBundlingJobAction(ActionList &Inputs) - : JobAction(OffloadBundlingJobClass, Inputs, Inputs.front()->getType()) {} + : JobAction(OffloadBundlingJobClass, Inputs, Inputs.back()->getType()) {} void OffloadUnbundlingJobAction::anchor() {} diff --git a/test/Driver/hip-output-file-name.hip b/test/Driver/hip-output-file-name.hip new file mode 100644 index 0000000000..65887f44d4 --- /dev/null +++ b/test/Driver/hip-output-file-name.hip @@ -0,0 +1,9 @@ +// REQUIRES: clang-driver +// REQUIRES: x86-registered-target +// REQUIRES: amdgpu-registered-target + +// RUN: %clang -### -c -target x86_64-linux-gnu \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: 2>&1 | FileCheck %s + +// CHECK: {{.*}}clang-offload-bundler{{.*}}"-outputs=hip-output-file-name.o" -- 2.40.0