diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp index 6938815da785d..c82d3e11823d1 100644 --- a/clang/lib/Driver/ToolChains/SYCL.cpp +++ b/clang/lib/Driver/ToolChains/SYCL.cpp @@ -276,10 +276,10 @@ SYCL::getDeviceLibraries(const Compilation &C, const llvm::Triple &TargetTriple, } if (TargetTriple.isNVPTX() && IgnoreSingleLibs) - LibraryList.push_back(Args.MakeArgString("devicelib--cuda.bc")); + LibraryList.push_back(Args.MakeArgString("devicelib-nvptx64-nvidia-cuda.bc")); if (TargetTriple.isAMDGCN() && IgnoreSingleLibs) - LibraryList.push_back(Args.MakeArgString("devicelib--amd.bc")); + LibraryList.push_back(Args.MakeArgString("devicelib-amdgcn-amd-amdhsa.bc")); if (IgnoreSingleLibs) return LibraryList; diff --git a/clang/test/Driver/Inputs/SYCL/lib/devicelib--amd.bc b/clang/test/Driver/Inputs/SYCL/lib/devicelib-amdgcn-amd-amdhsa.bc similarity index 100% rename from clang/test/Driver/Inputs/SYCL/lib/devicelib--amd.bc rename to clang/test/Driver/Inputs/SYCL/lib/devicelib-amdgcn-amd-amdhsa.bc diff --git a/clang/test/Driver/Inputs/SYCL/lib/devicelib--cuda.bc b/clang/test/Driver/Inputs/SYCL/lib/devicelib-nvptx64-nvidia-cuda.bc similarity index 100% rename from clang/test/Driver/Inputs/SYCL/lib/devicelib--cuda.bc rename to clang/test/Driver/Inputs/SYCL/lib/devicelib-nvptx64-nvidia-cuda.bc diff --git a/clang/test/Driver/sycl-device-lib-amdgcn.cpp b/clang/test/Driver/sycl-device-lib-amdgcn.cpp index a8dd1c5fa208b..46b377599421e 100644 --- a/clang/test/Driver/sycl-device-lib-amdgcn.cpp +++ b/clang/test/Driver/sycl-device-lib-amdgcn.cpp @@ -10,13 +10,13 @@ // RUN: -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend --offload-arch=gfx906 %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHK-NO-DEVLIB %s -// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib--amd.bc", ir, (device-sycl, gfx906) +// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib-amdgcn-amd-amdhsa.bc", ir, (device-sycl, gfx906) // CHK-NO-DEVLIB: [[LIB1:[0-9]+]]: input, "{{.*}}libsycl-itt-user-wrappers.bc", ir, (device-sycl, gfx906) -// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib--amd.bc", ir, (device-sycl, gfx906) +// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib-amdgcn-amd-amdhsa.bc", ir, (device-sycl, gfx906) // CHK-NO-DEVLIB: [[LIB2:[0-9]+]]: input, "{{.*}}libsycl-itt-compiler-wrappers.bc", ir, (device-sycl, gfx906) -// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib--amd.bc", ir, (device-sycl, gfx906) +// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib-amdgcn-amd-amdhsa.bc", ir, (device-sycl, gfx906) // CHK-NO-DEVLIB: [[LIB3:[0-9]+]]: input, "{{.*}}libsycl-itt-stubs.bc", ir, (device-sycl, gfx906) -// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib--amd.bc", ir, (device-sycl, gfx906) +// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib-amdgcn-amd-amdhsa.bc", ir, (device-sycl, gfx906) // CHK-NO-DEVLIB: {{[0-9]+}}: linker, {{{.*}}[[LIB1]], [[LIB2]], [[LIB3]]{{.*}}}, ir, (device-sycl, gfx906) // Check that the -fsycl-device-lib flag has no effect when "all" is specified. @@ -39,7 +39,7 @@ // RUN: | FileCheck -check-prefixes=CHK-UNUSED-WARN,CHK-ALL %s // CHK-UNUSED-WARN: warning: argument unused during compilation: '-fno-sycl-device-lib=' -// CHK-ALL: [[DEVLIB:[0-9]+]]: input, "{{.*}}devicelib--amd.bc", ir, (device-sycl, gfx906) +// CHK-ALL: [[DEVLIB:[0-9]+]]: input, "{{.*}}devicelib-amdgcn-amd-amdhsa.bc", ir, (device-sycl, gfx906) // CHK-ALL: {{[0-9]+}}: linker, {{{.*}}[[DEVLIB]]{{.*}}}, ir, (device-sycl, gfx906) // Check that llvm-link uses the "-only-needed" flag. @@ -48,4 +48,4 @@ // RUN: -fsycl -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend --offload-arch=gfx906 %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHK-ONLY-NEEDED %s -// CHK-ONLY-NEEDED: llvm-link"{{.*}}"-only-needed"{{.*}}"{{.*}}devicelib--amd.bc"{{.*}} +// CHK-ONLY-NEEDED: llvm-link"{{.*}}"-only-needed"{{.*}}"{{.*}}devicelib-amdgcn-amd-amdhsa.bc"{{.*}} diff --git a/clang/test/Driver/sycl-device-lib-nvptx.cpp b/clang/test/Driver/sycl-device-lib-nvptx.cpp index acb7b71475723..5e6b7bb8ef147 100644 --- a/clang/test/Driver/sycl-device-lib-nvptx.cpp +++ b/clang/test/Driver/sycl-device-lib-nvptx.cpp @@ -10,13 +10,13 @@ // RUN: -fsycl-targets=nvptx64-nvidia-cuda %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHK-NO-DEVLIB %s -// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib--cuda.bc", ir, (device-sycl, sm_50) +// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib-nvptx64-nvidia-cuda.bc", ir, (device-sycl, sm_50) // CHK-NO-DEVLIB: [[LIB1:[0-9]+]]: input, "{{.*}}libsycl-itt-user-wrappers.bc", ir, (device-sycl, sm_50) -// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib--cuda.bc", ir, (device-sycl, sm_50) +// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib-nvptx64-nvidia-cuda.bc", ir, (device-sycl, sm_50) // CHK-NO-DEVLIB: [[LIB2:[0-9]+]]: input, "{{.*}}libsycl-itt-compiler-wrappers.bc", ir, (device-sycl, sm_50) -// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib--cuda.bc", ir, (device-sycl, sm_50) +// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib-nvptx64-nvidia-cuda.bc", ir, (device-sycl, sm_50) // CHK-NO-DEVLIB: [[LIB3:[0-9]+]]: input, "{{.*}}libsycl-itt-stubs.bc", ir, (device-sycl, sm_50) -// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib--cuda.bc", ir, (device-sycl, sm_50) +// CHK-NO-DEVLIB-NOT: {{[0-9]+}}: input, "{{.*}}devicelib-nvptx64-nvidia-cuda.bc", ir, (device-sycl, sm_50) // CHK-NO-DEVLIB: {{[0-9]+}}: linker, {{{.*}}[[LIB1]], [[LIB2]], [[LIB3]]{{.*}}}, ir, (device-sycl, sm_50) // Check that the -fsycl-device-lib flag has no effect when "all" is specified. @@ -39,7 +39,7 @@ // RUN: | FileCheck -check-prefixes=CHK-UNUSED-WARN,CHK-ALL %s // CHK-UNUSED-WARN: warning: argument unused during compilation: '-fno-sycl-device-lib=' -// CHK-ALL: [[DEVLIB:[0-9]+]]: input, "{{.*}}devicelib--cuda.bc", ir, (device-sycl, sm_50) +// CHK-ALL: [[DEVLIB:[0-9]+]]: input, "{{.*}}devicelib-nvptx64-nvidia-cuda.bc", ir, (device-sycl, sm_50) // CHK-ALL: {{[0-9]+}}: linker, {{{.*}}[[DEVLIB]]{{.*}}}, ir, (device-sycl, sm_50) // Check that llvm-link uses the "-only-needed" flag. @@ -47,4 +47,4 @@ // RUN: %clangxx -### -nocudalib -fno-sycl-libspirv --sysroot=%S/Inputs/SYCL -fsycl -fsycl-targets=nvptx64-nvidia-cuda %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHK-ONLY-NEEDED %s -// CHK-ONLY-NEEDED: llvm-link"{{.*}}"-only-needed"{{.*}}"{{.*}}devicelib--cuda.bc"{{.*}} +// CHK-ONLY-NEEDED: llvm-link"{{.*}}"-only-needed"{{.*}}"{{.*}}devicelib-nvptx64-nvidia-cuda.bc"{{.*}} diff --git a/clang/test/Driver/sycl-nvptx-link.cpp b/clang/test/Driver/sycl-nvptx-link.cpp index 092d0e0efd7d5..683642233c2ae 100644 --- a/clang/test/Driver/sycl-nvptx-link.cpp +++ b/clang/test/Driver/sycl-nvptx-link.cpp @@ -39,7 +39,7 @@ // CHECK: llvm-link // CHECK-SAME: -only-needed -// CHECK-SAME: devicelib--cuda.bc +// CHECK-SAME: devicelib-nvptx64-nvidia-cuda.bc // CHECK-SAME: libspirv-nvptx64-nvidia-cuda.bc // LIBDEVICE10-SAME: libdevice.10.bc // LIBDEVICE30-SAME: libdevice.compute_30.10.bc diff --git a/clang/test/Driver/sycl-offload-amdgcn.cpp b/clang/test/Driver/sycl-offload-amdgcn.cpp index 8073c16bf6987..f118ade6e06c8 100644 --- a/clang/test/Driver/sycl-offload-amdgcn.cpp +++ b/clang/test/Driver/sycl-offload-amdgcn.cpp @@ -37,7 +37,7 @@ // CHK-PHASES-NO-CC: 7: backend, {6}, assembler, (host-sycl) // CHK-PHASES-NO-CC: 8: assembler, {7}, object, (host-sycl) // CHK-PHASES-NO-CC: 9: linker, {4}, ir, (device-sycl, gfx906) -// CHK-PHASES-NO-CC: 10: input, "{{.*}}devicelib--amd.bc", ir, (device-sycl, gfx906) +// CHK-PHASES-NO-CC: 10: input, "{{.*}}devicelib-amdgcn-amd-amdhsa.bc", ir, (device-sycl, gfx906) // CHK-PHASES-NO-CC: 11: linker, {9, 10}, ir, (device-sycl, gfx906) // CHK-PHASES-NO-CC: 12: sycl-post-link, {11}, ir, (device-sycl, gfx906) // CHK-PHASES-NO-CC: 13: file-table-tform, {12}, ir, (device-sycl, gfx906) diff --git a/libdevice/cmake/modules/SYCLLibdevice.cmake b/libdevice/cmake/modules/SYCLLibdevice.cmake index 4574b98ab5f99..d3bf7ac5c6b50 100644 --- a/libdevice/cmake/modules/SYCLLibdevice.cmake +++ b/libdevice/cmake/modules/SYCLLibdevice.cmake @@ -71,16 +71,16 @@ endforeach() # Additional compilation options are needed for compiling each device library. set(devicelib_arch) if ("NVPTX" IN_LIST LLVM_TARGETS_TO_BUILD) - list(APPEND devicelib_arch cuda) - set(compile_opts_cuda "-fsycl-targets=nvptx64-nvidia-cuda" + list(APPEND devicelib_arch nvptx64-nvidia-cuda) + set(compile_opts_nvptx64-nvidia-cuda "-fsycl-targets=nvptx64-nvidia-cuda" "-Xsycl-target-backend" "--cuda-gpu-arch=sm_50" "-nocudalib") - set(opt_flags_cuda "-O3" "--nvvm-reflect-enable=false") + set(opt_flags_nvptx64-nvidia-cuda "-O3" "--nvvm-reflect-enable=false") endif() if("AMDGPU" IN_LIST LLVM_TARGETS_TO_BUILD) - list(APPEND devicelib_arch amd) - set(compile_opts_amd "-nogpulib" "-fsycl-targets=amdgcn-amd-amdhsa" + list(APPEND devicelib_arch amdgcn-amd-amdhsa) + set(compile_opts_amdgcn-amd-amdhsa "-nogpulib" "-fsycl-targets=amdgcn-amd-amdhsa" "-Xsycl-target-backend" "--offload-arch=gfx940") - set(opt_flags_amd "-O3" "--amdgpu-oclc-reflect-enable=false") + set(opt_flags_amdgcn-amd-amdhsa "-O3" "--amdgpu-oclc-reflect-enable=false") endif() @@ -181,14 +181,14 @@ function(add_devicelibs filename) endforeach() foreach(arch IN LISTS devicelib_arch) - compile_lib(${filename}--${arch} + compile_lib(${filename}-${arch} FILETYPE bc SRC ${ARG_SRC} DEPENDENCIES ${ARG_DEPENDENCIES} EXTRA_OPTS ${ARG_EXTRA_OPTS} ${bc_device_compile_opts} ${compile_opts_${arch}}) - append_to_property(${bc_binary_dir}/${filename}--${arch}.bc + append_to_property(${bc_binary_dir}/${filename}-${arch}.bc PROPERTY_NAME BC_DEVICE_LIBS_${arch}) endforeach() endfunction() @@ -471,7 +471,7 @@ foreach(arch IN LISTS devicelib_arch) endforeach() endforeach() -# Create one large bitcode file for the CUDA and AMD targets. +# Create one large bitcode file for the NVPTX and AMD targets. # Use all the files collected in the respective global properties. foreach(arch IN LISTS devicelib_arch) get_property(BC_DEVICE_LIBS_${arch} GLOBAL PROPERTY BC_DEVICE_LIBS_${arch}) @@ -486,15 +486,15 @@ foreach(arch IN LISTS devicelib_arch) # Run the optimizer on the resulting bitcode file and call prepare_builtins # on it, which strips away debug and arch information. - process_bc(devicelib--${arch}.bc + process_bc(devicelib-${arch}.bc LIB_TGT builtins_${arch}.opt IN_FILE ${builtins_link_lib_${arch}} OUT_DIR ${bc_binary_dir} OPT_FLAGS ${opt_flags_${arch}} DEPENDENCIES device_lib_device_${arch}) - add_dependencies(libsycldevice-bc prepare-devicelib--${arch}.bc) + add_dependencies(libsycldevice-bc prepare-devicelib-${arch}.bc) set(complete_${arch}_libdev - $) + $) install( FILES ${complete_${arch}_libdev} DESTINATION ${install_dest_bc} COMPONENT libsycldevice)