Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
2d50750
remove dummy bin
jinge90 Nov 24, 2025
9c76946
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Nov 26, 2025
fe628a9
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Nov 27, 2025
7a7e62b
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Nov 28, 2025
4de8fa5
merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Dec 1, 2025
e52bb98
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Dec 4, 2025
4b63322
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Dec 10, 2025
544d912
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Dec 12, 2025
2ad6143
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Dec 17, 2025
cf391d9
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Dec 24, 2025
e0f2a15
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Jan 6, 2026
aa7a97c
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Jan 12, 2026
9244680
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Jan 30, 2026
b4b5793
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Feb 3, 2026
50f8f75
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Feb 4, 2026
ebc7166
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Feb 4, 2026
159748c
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Feb 4, 2026
17362e0
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Mar 3, 2026
9e38387
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Mar 5, 2026
dd1e30b
Merge remote-tracking branch 'origin/sycl' into sycl
jinge90 Mar 5, 2026
01fa557
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Mar 25, 2026
78adbd8
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Mar 26, 2026
c681812
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Apr 9, 2026
0726c0d
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Apr 10, 2026
f96405d
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Apr 14, 2026
d1f74f4
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Apr 21, 2026
eac7780
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 Apr 24, 2026
ff388a2
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 May 7, 2026
fc841dd
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 May 8, 2026
615606d
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 May 14, 2026
5418d34
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 May 21, 2026
63315b5
Merge remote-tracking branch 'upstream/sycl' into sycl
jinge90 May 22, 2026
4fccb1f
[SYCL] Remove dependencies for some driver tests
jinge90 May 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions clang/test/Driver/sycl-allow-device-image-deps-win.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,27 @@

/// Check that /OPT:NOREF is passed to the MSVC linker when both -fsycl and
/// -fsycl-allow-device-image-dependencies are specified.
// RUN: %clang_cl -fsycl --offload-new-driver \
// RUN: %clang_cl -fsycl --offload-new-driver /clang:--sysroot=%S/Inputs/SYCL \
// RUN: -fsycl-allow-device-image-dependencies /O2 -### -- %s 2>&1 \
// RUN: | FileCheck -check-prefix CHECK_OPT_NOREF %s
// CHECK_OPT_NOREF: link.exe{{.*}} "/OPT:NOREF"

/// Check that /OPT:NOREF is NOT passed when -fsycl-allow-device-image-dependencies
/// is not set (even with -fsycl present).
// RUN: %clang_cl -fsycl --offload-new-driver /O2 -### -- %s 2>&1 \
// RUN: | FileCheck -check-prefix CHECK_NO_OPT_NOREF %s
// RUN: %clang_cl -fsycl --offload-new-driver /clang:--sysroot=%S/Inputs/SYCL \
// RUN: /O2 -### -- %s 2>&1 | FileCheck -check-prefix CHECK_NO_OPT_NOREF %s
// CHECK_NO_OPT_NOREF-NOT: "/OPT:NOREF"

/// Check that /OPT:NOREF is NOT passed when -fsycl is not set (even with
/// -fsycl-allow-device-image-dependencies present).
// RUN: %clang_cl --offload-new-driver \
// RUN: %clang_cl --offload-new-driver /clang:--sysroot=%S/Inputs/SYCL \
// RUN: -fsycl-allow-device-image-dependencies /O2 -### -- %s 2>&1 \
// RUN: | FileCheck -check-prefix CHECK_NO_FSYCL %s
// CHECK_NO_FSYCL-NOT: "/OPT:NOREF"

/// Check that our /OPT:NOREF comes after user-specified /OPT:REF, ensuring
/// our flag overrides the user's optimization setting for correctness.
// RUN: %clang_cl -fsycl --offload-new-driver \
// RUN: %clang_cl -fsycl --offload-new-driver /clang:--sysroot=%S/Inputs/SYCL \
// RUN: -fsycl-allow-device-image-dependencies /O2 \
// RUN: -### %s /link /OPT:REF 2>&1 \
// RUN: | FileCheck -check-prefix CHECK_OPT_ORDER %s
Expand Down
2 changes: 1 addition & 1 deletion clang/test/Driver/sycl-offload-arch-intel-cpu.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/// Tests the behaviors of using -fsycl --offload-new-driver
/// Tests the behaviors of using -fsycl --offload-new-driver
// --offload-arch=<intel-cpu-values>.

// SYCL AOT compilation to Intel CPUs using --offload-arch
Expand Down
2 changes: 1 addition & 1 deletion clang/test/Driver/sycl-offload-arch-intel-gpu.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/// Tests the behaviors of using -fsycl --offload-new-driver
/// Tests the behaviors of using -fsycl --offload-new-driver
// --offload-arch=<intel-gpu-values>.

// SYCL AOT compilation to Intel GPUs using --offload-arch
Expand Down
9 changes: 6 additions & 3 deletions clang/test/Driver/sycl-post-link-options.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
/// Verify same set of sycl-post-link options generated for old and new offloading model
// REQUIRES: libdevice

// RUN: %clangxx --target=x86_64-unknown-linux-gnu -fsycl -### \
// RUN: --no-offload-new-driver -Xdevice-post-link -O0 -fsycl-id-queries-range=int %s --sysroot=%S/Inputs/SYCL 2>&1 \
Expand All @@ -8,7 +7,7 @@
//
// Generate .o file as linker wrapper input.
//
// RUN: %clang %s -fsycl -fsycl-targets=spir64-unknown-unknown -c --offload-new-driver -o %t.o
// RUN: %clang %s -fsycl -fsycl-targets=spir64-unknown-unknown -c --offload-new-driver --no-offloadlib -fno-sycl-instrument-device-code -o %t.o
//
// Generate .bc file as SYCL device library file.
//
Expand All @@ -33,23 +32,27 @@
// Ensure driver forwards these triple based options to clang-linker-wrapper.
//
// RUN: %clangxx %s -### -fsycl --offload-new-driver \
// RUN: --sysroot=%S/Inputs/SYCL \
// RUN: -fsycl-remove-unused-external-funcs \
// RUN: -fsycl-device-code-split-esimd \
// RUN: -fsycl-add-default-spec-consts-image \
// RUN: 2>&1 | FileCheck --check-prefix=OPTIONS_FORWARD %s
// RUN: %clang_cl %s -### -fsycl --offload-new-driver \
// RUN: /clang:--sysroot=%S/Inputs/SYCL \
// RUN: -fsycl-remove-unused-external-funcs \
// RUN: -fsycl-device-code-split-esimd \
// RUN: -fsycl-add-default-spec-consts-image \
// RUN: 2>&1 | FileCheck --check-prefix=OPTIONS_FORWARD %s
// OPTIONS_FORWARD: clang-linker-wrapper{{.*}} "-sycl-remove-unused-external-funcs" "-sycl-device-code-split-esimd" "-sycl-add-default-spec-consts-image"
//
// RUN: %clangxx %s -### -fsycl --offload-new-driver \
// RUN: --sysroot=%S/Inputs/SYCL \
// RUN: -fno-sycl-remove-unused-external-funcs \
// RUN: -fno-sycl-device-code-split-esimd \
// RUN: -fno-sycl-add-default-spec-consts-image \
// RUN: 2>&1 | FileCheck --check-prefix=OPTIONS_FORWARD_NO %s
// RUN: %clang_cl %s -### -fsycl --offload-new-driver \
// RUN: /clang:--sysroot=%S/Inputs/SYCL \
// RUN: -fno-sycl-remove-unused-external-funcs \
// RUN: -fno-sycl-device-code-split-esimd \
// RUN: -fno-sycl-add-default-spec-consts-image \
Expand All @@ -74,7 +77,7 @@
//
// Generate AOT .o file as linker wrapper input.
//
// RUN: %clang %s -fsycl -fsycl-targets=spir64_gen-unknown-unknown -c --offload-new-driver -o %t_aot.o
// RUN: %clang %s -fsycl -fsycl-targets=spir64_gen-unknown-unknown -c --offload-new-driver --no-offloadlib -fno-sycl-instrument-device-code -o %t_aot.o
//
// Generate AOT .bc file as SYCL device library file.
//
Expand Down
21 changes: 10 additions & 11 deletions clang/test/Driver/sycl-preprocess.cpp
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
// Test the behaviors when enabling SYCL offloading with preprocessed files.
// REQUIRES: libdevice

/// Creating a preprocessed file is expected to do an integration header
/// creation step.
// RUN: %clangxx -fsycl --offload-new-driver -E -o %t_output.ii %s -### 2>&1 \
// RUN: | FileCheck -check-prefix PREPROC_ONLY %s
// RUN: %clang_cl -fsycl --offload-new-driver -P %s -### 2>&1 \
// RUN: | FileCheck -check-prefix PREPROC_ONLY %s
// RUN: %clangxx -fsycl --offload-new-driver --sysroot=%S/Inputs/SYCL/ \
// RUN: -E -o %t_output.ii %s -### 2>&1 | FileCheck -check-prefix PREPROC_ONLY %s
// RUN: %clang_cl -fsycl --offload-new-driver /clang:--sysroot=%S/Inputs/SYCL \
// RUN: -P %s -### 2>&1 | FileCheck -check-prefix PREPROC_ONLY %s
// PREPROC_ONLY: clang{{.*}} "-fsycl-is-device"{{.*}} "-fsycl-int-header=[[INTHEADER:.+\.h]]" "-fsycl-int-footer=[[INTFOOTER:.+\.h]]"{{.*}} "-E"
// PREPROC_ONLY: clang{{.*}} "-fsycl-is-host"{{.*}} "-include-internal-header" "[[INTHEADER]]"{{.*}} "-include-internal-footer" "[[INTFOOTER]]"{{.*}} "-o" "[[HOST_OUT:.+\.ii]]"

/// When compiling from preprocessed file, no integration header is expected
// RUN: touch %t.ii
// RUN: %clangxx -fsycl --offload-new-driver %t.ii -### 2>&1 | FileCheck -check-prefix PREPROC_IN %s
// RUN: %clangxx -fsycl --offload-new-driver --sysroot=%S/Inputs/SYCL %t.ii -### 2>&1 | FileCheck -check-prefix PREPROC_IN %s
// PREPROC_IN-NOT: "-fsycl-int-header={{.*}}"
// PREPROC_IN: clang{{.*}} "-fsycl-is-host"

/// When generating preprocessed files, verify the compilation phases.
// RUN: %clangxx --target=x86_64-unknown-linux-gnu --offload-new-driver -fsycl -E %s -o %t.ii -ccc-print-phases 2>&1 \
// RUN: %clangxx --target=x86_64-unknown-linux-gnu --offload-new-driver --sysroot=%S/Inputs/SYCL -fsycl -E %s -o %t.ii -ccc-print-phases 2>&1 \
// RUN: | FileCheck %s -check-prefix PREPROC_PHASES -DTARGET=x86_64-unknown-linux-gnu
// RUN: %clang_cl --target=x86_64-pc-windows-msvc --offload-new-driver -fsycl -P %s -Fi%t.ii -ccc-print-phases 2>&1 \
// RUN: %clang_cl --target=x86_64-pc-windows-msvc --offload-new-driver /clang:--sysroot=%S/Inputs/SYCL -fsycl -P %s -Fi%t.ii -ccc-print-phases 2>&1 \
// RUN: | FileCheck %s -check-prefix PREPROC_PHASES -DTARGET=x86_64-pc-windows-msvc
// PREPROC_PHASES: 0: input, "[[INPUT:.+\.cpp]]", c++, (host-sycl)
// PREPROC_PHASES: 1: preprocessor, {0}, c++-cpp-output, (host-sycl)
Expand All @@ -32,11 +31,11 @@

/// When generating preprocessed files, verify the tools called and the expected
/// output file name.
// RUN: %clangxx --offload-new-driver -fsycl -E %s -o sycl-preprocess.ii -### 2>&1 \
// RUN: %clangxx --offload-new-driver --sysroot=%S/Inputs/SYCL -fsycl -E %s -o sycl-preprocess.ii -### 2>&1 \
// RUN: | FileCheck %s -check-prefix PREPROC_TOOLS
// RUN: %clang_cl --offload-new-driver -fsycl -P %s -Fisycl-preprocess.ii -### 2>&1 \
// RUN: %clang_cl --offload-new-driver /clang:--sysroot=%S/Inputs/SYCL -fsycl -P %s -Fisycl-preprocess.ii -### 2>&1 \
// RUN: | FileCheck %s -check-prefix PREPROC_TOOLS
// RUN: %clang_cl --offload-new-driver -fsycl -E %s -o sycl-preprocess.ii -### 2>&1 \
// RUN: %clang_cl --offload-new-driver /clang:--sysroot=%S/Inputs/SYCL -fsycl -E %s -o sycl-preprocess.ii -### 2>&1 \
// RUN: | FileCheck %s -check-prefix PREPROC_TOOLS
// PREPROC_TOOLS: clang{{.*}} "-fsycl-is-device"
// PREPROC_TOOLS-SAME: "-o" "[[DEVICE_PP_FILE:.+\.ii]]
Expand Down
1 change: 1 addition & 0 deletions clang/test/Driver/sycl-spirv-default-options.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
// Test for default llvm-spirv options

// RUN: %clang -target x86_64-unknown-linux-gnu -fsycl --offload-new-driver \
// RUN: --no-offloadlib -fno-sycl-instrument-device-code \
// RUN: -fsycl-targets=spir64-unknown-unknown -c %s -o %t.o
// RUN: clang-linker-wrapper --bitcode-library=spir64-unknown-unknown=%t.devicelib.bc \
// RUN: "--host-triple=x86_64-unknown-linux-gnu" "--linker-path=/usr/bin/ld" \
Expand Down
5 changes: 4 additions & 1 deletion clang/test/Driver/sycl-spirv-ext.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Generate .bc file as SYCL device library file.
// REQUIRES: system-linux, libdevice
// REQUIRES: system-linux
//
// RUN: touch %t_1.devicelib.bc
// RUN: touch %t_2.devicelib.bc
Expand All @@ -8,18 +8,21 @@
/// Check llvm-spirv extensions that are set

// RUN: %clang -target x86_64-unknown-linux-gnu -fsycl --offload-new-driver \
// RUN: --no-offloadlib -fno-sycl-instrument-device-code \
// RUN: -fsycl-targets=spir64-unknown-unknown -c %s -o %t_1.o
// RUN: clang-linker-wrapper --bitcode-library=spir64-unknown-unknown=%t_1.devicelib.bc \
// RUN: "--host-triple=x86_64-unknown-linux-gnu" "--linker-path=/usr/bin/ld" \
// RUN: "--" "-o" "a.out" %t_1.o --dry-run 2>&1 \
// RUN: | FileCheck -check-prefix=CHECK-DEFAULT %s
// RUN: %clang -target x86_64-unknown-linux-gnu -fsycl --offload-new-driver \
// RUN: --no-offloadlib -fno-sycl-instrument-device-code \
// RUN: -fsycl-targets=spir64_gen-unknown-unknown -c %s -o %t_2.o
// RUN: clang-linker-wrapper --bitcode-library=spir64_gen-unknown-unknown=%t_2.devicelib.bc \
// RUN: "--host-triple=x86_64-unknown-linux-gnu" "--linker-path=/usr/bin/ld" \
// RUN: "--" "-o" "a.out" %t_2.o --dry-run 2>&1 \
// RUN: | FileCheck -check-prefix=CHECK-DEFAULT %s
// RUN: %clang -target x86_64-unknown-linux-gnu -fsycl --offload-new-driver \
// RUN: --no-offloadlib -fno-sycl-instrument-device-code \
// RUN: -fsycl-targets=spir64_x86_64-unknown-unknown -c %s -o %t_3.o
// RUN: clang-linker-wrapper --bitcode-library=spir64_x86_64-unknown-unknown=%t_3.devicelib.bc \
// RUN: "--host-triple=x86_64-unknown-linux-gnu" "--linker-path=/usr/bin/ld" \
Expand Down
16 changes: 10 additions & 6 deletions clang/test/Driver/sycl-time-trace-actual.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
// This test performs actual compilation
// and verifies that both host and device trace JSON files are created.

// REQUIRES: system-linux, libdevice
// REQUIRES: system-linux

// Setup: Create test directories and input file
// RUN: rm -rf %t && mkdir -p %t/src %t/traces
// RUN: cp %s %t/src/test.cpp

// Test 1: Compile-only mode with explicit trace directory
// RUN: %clang --target=x86_64-unknown-linux-gnu -fsycl --offload-new-driver \
// RUN: -c -ftime-trace=%t/traces -ftime-trace-granularity=0 \
// RUN: -ftime-trace-verbose %t/src/test.cpp -o %t/test.o
// RUN: --no-offloadlib -fno-sycl-instrument-device-code -c -ftime-trace=%t/traces \
// RUN: -ftime-trace-granularity=0 -ftime-trace-verbose %t/src/test.cpp -o %t/test.o

// Verify host and device trace files were generated
// RUN: ls %t/traces/ | FileCheck %s --check-prefix=CHECK-TEST1
Expand All @@ -27,7 +27,8 @@
// When using -c with -o, trace files should be named based on the -o output
// RUN: rm -rf %t/traces2 && mkdir -p %t/traces2
// RUN: %clang --target=x86_64-unknown-linux-gnu -fsycl --offload-new-driver \
// RUN: -c -ftime-trace=%t/traces2 %t/src/test.cpp -o %t/different_name.o
// RUN: --no-offloadlib -fno-sycl-instrument-device-code -c \
// RUN: -ftime-trace=%t/traces2 %t/src/test.cpp -o %t/different_name.o

// Should be named after the -o output (different_name), not the source (test.cpp)
// RUN: ls %t/traces2/ | FileCheck %s --check-prefix=CHECK-TEST2
Expand All @@ -38,6 +39,7 @@
// In compile+link mode, trace files are named based on source file
// RUN: rm -rf %t/traces3 && mkdir -p %t/traces3
// RUN: %clang --target=x86_64-unknown-linux-gnu -fsycl --offload-new-driver \
// RUN: --no-offloadlib -fno-sycl-instrument-device-code \
// RUN: -ftime-trace=%t/traces3 %t/src/test.cpp -o %t/myapp

// Frontend traces should still be generated (named after source file)
Expand All @@ -50,7 +52,8 @@
// RUN: cp %s %t/src2/file1.cpp
// RUN: cp %s %t/src2/file2.cpp
// RUN: %clang --target=x86_64-unknown-linux-gnu -fsycl --offload-new-driver \
// RUN: -c -ftime-trace=%t/traces4 %t/src2/file1.cpp %t/src2/file2.cpp
// RUN: --no-offloadlib -fno-sycl-instrument-device-code -c \
// RUN: -ftime-trace=%t/traces4 %t/src2/file1.cpp %t/src2/file2.cpp

// Should have clean trace file names since basenames are unique
// RUN: ls %t/traces4/ | FileCheck %s --check-prefix=CHECK-UNIQUE
Expand All @@ -65,7 +68,8 @@
// RUN: cp %s %t/dir1/test.cpp
// RUN: cp %s %t/dir2/test.cpp
// RUN: %clang --target=x86_64-unknown-linux-gnu -fsycl --offload-new-driver \
// RUN: -c -ftime-trace=%t/traces5 %t/dir1/test.cpp %t/dir2/test.cpp
// RUN: --no-offloadlib -fno-sycl-instrument-device-code -c \
// RUN: -ftime-trace=%t/traces5 %t/dir1/test.cpp %t/dir2/test.cpp

// Should have 4 trace files (2 sources × 2 traces each)
// Verify they use directory names to disambiguate (dir1-test, dir2-test)
Expand Down
2 changes: 2 additions & 0 deletions clang/test/Driver/sycl-windows-device-filename.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

// RUN: %clang -### --target=x86_64-pc-windows-msvc -fsycl \
// RUN: -fsycl-targets=spir64_gen --offload-new-driver \
// RUN: --sysroot=%S/Inputs/SYCL \
// RUN: -Xsycl-target-backend "-device arch1:arch2" %s 2>&1 \
// RUN: | FileCheck %s -check-prefix=CHECK_COLON

Expand All @@ -12,6 +13,7 @@

// RUN: %clang -### --target=x86_64-pc-windows-msvc -fsycl \
// RUN: -fsycl-targets=spir64_gen --offload-new-driver \
// RUN: --sysroot=%S/Inputs/SYCL \
// RUN: -Xsycl-target-backend "-device *" %s 2>&1 \
// RUN: | FileCheck %s -check-prefix=CHECK_STAR

Expand Down
Loading