Skip to content

Commit 4681124

Browse files
author
Jakub Chlanda
committed
Merge remote-tracking branch 'upstream/sycl' into stefanatwork/ptx_out
2 parents 5b725dc + 946e9b8 commit 4681124

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+549
-606
lines changed

.github/workflows/sycl-linux-precommit.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ on:
1212
paths-ignore:
1313
- '.github/ISSUE_TEMPLATE/**'
1414
- '.github/CODEOWNERS'
15+
- 'sycl/cts_exclude_filter/**'
1516
- 'sycl/doc/**'
1617
- 'sycl/gdb/**'
1718
- 'clang/docs/**'
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: Benchmarks
2+
3+
# This workflow is a WIP: this workflow file acts as a placeholder.
4+
5+
on: [ workflow_dispatch ]
6+
7+
jobs:
8+
do-nothing:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- run: echo 'This workflow is a WIP.'
12+

.github/workflows/sycl-weekly.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
# This workflow builds SYCL-CTS with -fsycl-use-spirv-backend-for-spirv-gen and
2-
# runs it with opencl:cpu & gen12 and level_zero:gpu & PVC on Sundays.
3-
4-
name: SYCL-CTS with SPIR-V backend
1+
name: SYCL Weekly
52

63
on:
74
workflow_dispatch:
85
schedule:
6+
# At 00:00 on Sunday.
97
- cron: '0 0 * * 0'
108

119
permissions: read-all
@@ -20,6 +18,7 @@ jobs:
2018
build_artifact_suffix: default
2119
build_configure_extra_args: ''
2220

21+
# This job builds SYCL-CTS with -fsycl-use-spirv-backend-for-spirv-gen.
2322
build-sycl-cts:
2423
needs: ubuntu2204_build
2524
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
@@ -35,6 +34,7 @@ jobs:
3534
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
3635
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
3736
extra_cmake_args: -DDPCPP_FLAGS=-fsycl-use-spirv-backend-for-spirv-gen
37+
sycl_cts_artifact: sycl_cts_bin
3838

3939
run-sycl-cts:
4040
needs: [ubuntu2204_build, build-sycl-cts]

.github/workflows/sycl-windows-precommit.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ on:
1010
paths-ignore:
1111
- '.github/ISSUE_TEMPLATE/**'
1212
- '.github/CODEOWNERS'
13+
- 'sycl/cts_exclude_filter/**'
1314
- 'sycl/doc/**'
1415
- 'sycl/gdb/**'
1516
- 'clang/docs/**'

.github/workflows/ur-benchmarks-reusable.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
name: Benchmarks Reusable
22

33
# This workflow is a WIP: This workflow file acts as a placeholder.
4+
#
5+
# This workflow is set to be merged into benchmark.yml
46

57
on: [ workflow_call ]
68

.github/workflows/ur-benchmarks.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
name: Benchmarks
22

33
# This workflow is a WIP: this workflow file acts as a placeholder.
4+
#
5+
# This workflow is set to be merged into benchmark.yml
46

57
on: [ workflow_dispatch ]
68

clang/test/Driver/linker-wrapper-sycl.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,6 @@
4747
// RUN: clang-linker-wrapper -sycl-device-libraries=%t.devicelib.o -sycl-post-link-options="SYCL_POST_LINK_OPTIONS" -llvm-spirv-options="LLVM_SPIRV_OPTIONS" "--host-triple=x86_64-unknown-linux-gnu" "--triple=spir64" "--linker-path=/usr/bin/ld" -shared "--" HOST_LINKER_FLAGS "-dynamic-linker" HOST_DYN_LIB "-o" "a.out" HOST_LIB_PATH HOST_STAT_LIB %t.o --dry-run 2>&1 | FileCheck -check-prefix=CHK-SHARED %s
4848
// CHK-SHARED: "{{.*}}clang"{{.*}} -fPIC
4949

50-
// RUN: rm %T/linker_wrapper_dump || true
51-
// RUN: clang-linker-wrapper -sycl-dump-device-code=%T/linker_wrapper_dump -sycl-device-libraries=%t.devicelib.o "--host-triple=x86_64-unknown-linux-gnu" "--triple=spir64" "--linker-path=/usr/bin/ld" -shared "--" HOST_LINKER_FLAGS "-dynamic-linker" HOST_DYN_LIB "-o" "a.out" HOST_LIB_PATH HOST_STAT_LIB %t.o --dry-run
52-
// RUN: ls %T/linker_wrapper_dump | FileCheck -check-prefix=CHK-SYCL-DUMP-DEVICE %s
53-
// CHK-SYCL-DUMP-DEVICE: {{.*}}.spv
54-
5550
/// Check for list of commands for standalone clang-linker-wrapper run for sycl (AOT for Intel GPU)
5651
// -------
5752
// Generate .o file as linker wrapper input.

clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp

Lines changed: 17 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ static std::optional<llvm::module_split::IRSplitMode> SYCLModuleSplitMode;
151151

152152
static bool UseSYCLPostLinkTool;
153153

154-
static SmallString<128> SPIRVDumpDir;
154+
static SmallString<128> OffloadImageDumpDir;
155155

156156
using OffloadingImage = OffloadBinary::OffloadingImage;
157157

@@ -923,29 +923,6 @@ static Expected<StringRef> runLLVMToSPIRVTranslation(StringRef File,
923923
if (Error Err = executeCommands(*LLVMToSPIRVPath, CmdArgs))
924924
return std::move(Err);
925925

926-
if (!SPIRVDumpDir.empty()) {
927-
std::error_code EC =
928-
llvm::sys::fs::create_directory(SPIRVDumpDir, /*IgnoreExisting*/ true);
929-
if (EC)
930-
return createStringError(
931-
EC,
932-
formatv("failed to create dump directory. path: {0}, error_code: {1}",
933-
SPIRVDumpDir, EC.value()));
934-
935-
StringRef Sep = llvm::sys::path::get_separator();
936-
StringRef Path = *TempFileOrErr;
937-
StringRef Filename = Path.rsplit(Sep).second;
938-
SmallString<128> CopyPath = SPIRVDumpDir;
939-
CopyPath.append(Filename);
940-
EC = llvm::sys::fs::copy_file(Path, CopyPath);
941-
if (EC)
942-
return createStringError(
943-
EC,
944-
formatv(
945-
"failed to copy file. original: {0}, copy: {1}, error_code: {2}",
946-
Path, CopyPath, EC.value()));
947-
}
948-
949926
return *TempFileOrErr;
950927
}
951928

@@ -1103,6 +1080,18 @@ wrapSYCLBinariesFromFile(std::vector<module_split::SplitModule> &SplitModules,
11031080
RegularTarget = "spir64";
11041081

11051082
for (auto &SI : SplitModules) {
1083+
if (!OffloadImageDumpDir.empty()) {
1084+
StringRef CopyFrom = SI.ModuleFilePath;
1085+
SmallString<128> CopyTo = OffloadImageDumpDir;
1086+
StringRef Filename = sys::path::filename(CopyFrom);
1087+
CopyTo.append(Filename);
1088+
std::error_code EC = sys::fs::copy_file(CopyFrom, CopyTo);
1089+
if (EC)
1090+
return createStringError(EC, formatv("failed to copy file. From: "
1091+
"{0} to: {1}, error_code: {2}",
1092+
CopyFrom, CopyTo, EC.value()));
1093+
}
1094+
11061095
auto MBOrDesc = MemoryBuffer::getFile(SI.ModuleFilePath);
11071096
if (!MBOrDesc)
11081097
return createFileError(SI.ModuleFilePath, MBOrDesc.getError());
@@ -2618,13 +2607,11 @@ int main(int Argc, char **Argv) {
26182607

26192608
if (Args.hasArg(OPT_sycl_dump_device_code_EQ)) {
26202609
Arg *A = Args.getLastArg(OPT_sycl_dump_device_code_EQ);
2621-
SmallString<128> Dir(A->getValue());
2622-
if (Dir.empty())
2623-
llvm::sys::path::native(Dir = "./");
2610+
OffloadImageDumpDir = A->getValue();
2611+
if (OffloadImageDumpDir.empty())
2612+
sys::path::native(OffloadImageDumpDir = "./");
26242613
else
2625-
Dir.append(llvm::sys::path::get_separator());
2626-
2627-
SPIRVDumpDir = Dir;
2614+
OffloadImageDumpDir.append(sys::path::get_separator());
26282615
}
26292616

26302617
{

clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ Flags<[WrapperOnlyOption]>, HelpText<"Embed LLVM IR for runtime kernel fusion">
242242

243243
def sycl_dump_device_code_EQ : Joined<["--", "-"], "sycl-dump-device-code=">,
244244
Flags<[WrapperOnlyOption]>,
245-
HelpText<"Path to the folder where the tool dumps SPIR-V device code. Other formats aren't dumped.">;
245+
HelpText<"Directory to dump offloading images to.">;
246246

247247
// Options to enable/disable device dynamic linking.
248248
def sycl_allow_device_image_dependencies : Flag<["--", "-"], "sycl-allow-device-image-dependencies">,
File renamed without changes.

0 commit comments

Comments
 (0)