Skip to content

Commit 16007fa

Browse files
authored
[SYCL][Device libs][New offload] Add missing fallback SYCL device library files (#13869)
This change is made to align the list of SYCL device library files used in the new offload model with that of the old offload model. A gap in implementation was identified and this PR fixes this gap. Signed-off-by: Arvind Sudarsanam <[email protected]>
1 parent 1a50b07 commit 16007fa

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11014,8 +11014,14 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA,
1101411014
CmdArgs.push_back("--triple=spirv64");
1101511015

1101611016
SmallVector<std::string, 8> SYCLDeviceLibs;
11017-
SYCLDeviceLibs = SYCL::getDeviceLibraries(C, TargetTriple,
11018-
/*IsSpirvAOT=*/false);
11017+
auto IsSPIR = TargetTriple.isSPIROrSPIRV();
11018+
bool IsSpirvAOT = TargetTriple.isSPIRAOT();
11019+
bool UseJitLink =
11020+
IsSPIR &&
11021+
Args.hasFlag(options::OPT_fsycl_device_lib_jit_link,
11022+
options::OPT_fno_sycl_device_lib_jit_link, false);
11023+
bool UseAOTLink = IsSPIR && (IsSpirvAOT || !UseJitLink);
11024+
SYCLDeviceLibs = SYCL::getDeviceLibraries(C, TargetTriple, UseAOTLink);
1101911025
// Create a comma separated list to pass along to the linker wrapper.
1102011026
SmallString<256> LibList;
1102111027
for (const auto &AddLib : SYCLDeviceLibs) {

clang/test/Driver/sycl-offload-new-driver.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
// RUN: --sysroot=%S/Inputs/SYCL -### %s 2>&1 \
3636
// RUN: | FileCheck -check-prefix WRAPPER_OPTIONS %s
3737
// WRAPPER_OPTIONS: clang-linker-wrapper{{.*}} "--triple=spir64"
38-
// WRAPPER_OPTIONS-SAME: "-sycl-device-libraries=libsycl-crt.new.o,libsycl-complex.new.o,libsycl-complex-fp64.new.o,libsycl-cmath.new.o,libsycl-cmath-fp64.new.o,libsycl-imf.new.o,libsycl-imf-fp64.new.o,libsycl-imf-bf16.new.o,libsycl-itt-user-wrappers.new.o,libsycl-itt-compiler-wrappers.new.o,libsycl-itt-stubs.new.o"
38+
// WRAPPER_OPTIONS-SAME: "-sycl-device-libraries=libsycl-crt.new.o,libsycl-complex.new.o,libsycl-complex-fp64.new.o,libsycl-cmath.new.o,libsycl-cmath-fp64.new.o,libsycl-imf.new.o,libsycl-imf-fp64.new.o,libsycl-imf-bf16.new.o,libsycl-fallback-cassert.new.o,libsycl-fallback-cstring.new.o,libsycl-fallback-complex.new.o,libsycl-fallback-complex-fp64.new.o,libsycl-fallback-cmath.new.o,libsycl-fallback-cmath-fp64.new.o,libsycl-fallback-imf.new.o,libsycl-fallback-imf-fp64.new.o,libsycl-fallback-imf-bf16.new.o,libsycl-itt-user-wrappers.new.o,libsycl-itt-compiler-wrappers.new.o,libsycl-itt-stubs.new.o"
3939
// WRAPPER_OPTIONS-SAME: "-sycl-device-library-location={{.*}}/lib"
4040

4141
/// Verify phases used to generate SPIR-V instead of LLVM-IR

0 commit comments

Comments
 (0)