Author: Arseniy Obolenskiy Date: 2026-10-09T21:01:43Z New Revision: bfa9c0dcded8f02591559c716f76c4a244f8037f
URL: https://github.com/llvm/llvm-project/commit/bfa9c0dcded8f02591559c716f76c4a244f8037f DIFF: https://github.com/llvm/llvm-project/commit/bfa9c0dcded8f02591559c716f76c4a244f8037f.diff LOG: [Clang][Driver] Use offload LTO mode when embedding device bitcode (#230644) With `-fno-offload-lto`, `-fembed-bitcode=all` collapsed the device compile into a backend job that drops HIP includes Regressed is introduced #201155 (and later in #202736) Added: Modified: clang/lib/Driver/Driver.cpp clang/test/Driver/embed-bitcode.c Removed: ################################################################################ diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index a5bd672b8de47..b2dbc32f1b89f 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -5344,8 +5344,10 @@ InputInfoList Driver::BuildJobsForActionNoCache( const JobAction *JA = cast<JobAction>(A); ActionList CollapsedOffloadActions; - ToolSelector TS(JA, *TC, C, isSaveTempsEnabled(), - embedBitcodeInObject() && !TC->isUsingLTO(C.getArgs())); + ToolSelector TS( + JA, *TC, C, isSaveTempsEnabled(), + embedBitcodeInObject() && + !TC->isUsingLTO(C.getArgs(), JA->getOffloadingDeviceKind())); const Tool *T = TS.getTool(Inputs, CollapsedOffloadActions); if (!T) diff --git a/clang/test/Driver/embed-bitcode.c b/clang/test/Driver/embed-bitcode.c index 916772ea0dedc..a2987dc4e2273 100644 --- a/clang/test/Driver/embed-bitcode.c +++ b/clang/test/Driver/embed-bitcode.c @@ -60,3 +60,22 @@ // RUN: not %clang -target armv7-apple-darwin -miphoneos-version-min=5.0 %s -fembed-bitcode -### 2>&1 | \ // RUN: FileCheck %s -check-prefix=CHECK-PLATFORM-NOTSUPPORTED // CHECK-PLATFORM-NOTSUPPORTED: -fembed-bitcode is not supported on versions of iOS prior to 6.0 + +// RUN: %clang -### -x hip --target=x86_64-unknown-linux-gnu --offload-arch=gfx90a \ +// RUN: --rocm-path=%S/Inputs/rocm -nogpulib -fno-offload-lto -fembed-bitcode=all -c %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK-HIP-NO-LTO +// CHECK-HIP-NO-LTO: "-cc1" "-triple" "{{amdgcn|amdgpu}}{{.*}}" "-emit-llvm-bc" +// CHECK-HIP-NO-LTO-NOT: "-disable-llvm-passes" +// CHECK-HIP-NO-LTO-SAME: "-include" "__clang_hip_runtime_wrapper.h" +// CHECK-HIP-NO-LTO-SAME: "-x" "hip" +// CHECK-HIP-NO-LTO-NEXT: "-cc1" "-triple" "{{amdgcn|amdgpu}}{{.*}}" "-emit-obj" "-fembed-bitcode=all" +// CHECK-HIP-NO-LTO-SAME: "-disable-llvm-passes" +// CHECK-HIP-NO-LTO-SAME: "-x" "ir" + +// RUN: %clang -### -x hip --target=x86_64-unknown-linux-gnu --offload-arch=gfx90a \ +// RUN: -nogpulib -nogpuinc -fembed-bitcode=all -c %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK-HIP-LTO +// CHECK-HIP-LTO: "-cc1" "-triple" "{{amdgcn|amdgpu}}{{.*}}" "-emit-llvm-bc" +// CHECK-HIP-LTO-SAME: "-flto=full" +// CHECK-HIP-LTO-SAME: "-x" "hip" +// CHECK-HIP-LTO-NEXT: llvm-offload-binary _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
