Skip to content

Commit d5b5a5b

Browse files
committed
Merge branch 'sycl' of https://github.com/intel/llvm into benchmarking-workflow
2 parents 3c85d5a + 5edc8fe commit d5b5a5b

File tree

1,068 files changed

+272682
-4018
lines changed

Some content is hidden

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

1,068 files changed

+272682
-4018
lines changed

.github/workflows/sycl-rel-nightly.yml

Lines changed: 47 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,18 +80,6 @@ jobs:
8080
image_options: -u 1001 --privileged --cap-add SYS_ADMIN
8181
target_devices: opencl:cpu
8282
tests_selector: e2e
83-
84-
- name: SYCL-CTS on OCL CPU
85-
runner: '["Linux", "gen12"]'
86-
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
87-
target_devices: opencl:cpu
88-
tests_selector: cts
89-
90-
- name: SYCL-CTS on L0 gen12
91-
runner: '["Linux", "gen12"]'
92-
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
93-
target_devices: level_zero:gpu
94-
tests_selector: cts
9583
uses: ./.github/workflows/sycl-linux-run-tests.yml
9684
with:
9785
name: ${{ matrix.name }}
@@ -168,3 +156,50 @@ jobs:
168156
with:
169157
mode: stop
170158
ref: sycl-rel-6_0_0
159+
160+
build-sycl-cts:
161+
needs: ubuntu2204_build
162+
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
163+
uses: ./.github/workflows/sycl-linux-run-tests.yml
164+
with:
165+
name: Build SYCL-CTS
166+
runner: '["Linux", "build"]'
167+
cts_testing_mode: 'build-only'
168+
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
169+
tests_selector: cts
170+
ref: sycl-rel-6_0_0
171+
devops_ref: sycl
172+
sycl_toolchain_artifact: sycl_linux_default
173+
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
174+
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
175+
176+
run-sycl-cts:
177+
needs: [ubuntu2204_build, build-sycl-cts]
178+
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
179+
strategy:
180+
fail-fast: false
181+
matrix:
182+
include:
183+
- name: SYCL-CTS on OCL CPU
184+
runner: '["Linux", "gen12"]'
185+
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
186+
target_devices: opencl:cpu
187+
188+
- name: SYCL-CTS on L0 gen12
189+
runner: '["Linux", "gen12"]'
190+
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
191+
target_devices: level_zero:gpu
192+
uses: ./.github/workflows/sycl-linux-run-tests.yml
193+
with:
194+
name: ${{ matrix.name }}
195+
runner: ${{ matrix.runner }}
196+
cts_testing_mode: 'run-only'
197+
image_options: ${{ matrix.image_options }}
198+
target_devices: ${{ matrix.target_devices }}
199+
tests_selector: cts
200+
ref: ${{ github.sha }}
201+
devops_ref: sycl
202+
sycl_toolchain_artifact: sycl_linux_default
203+
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
204+
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
205+
sycl_cts_artifact: sycl_cts_bin

.github/workflows/ur-build-hw.yml

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -85,27 +85,16 @@ jobs:
8585
runs-on: ${{inputs.runner_name}}
8686

8787
steps:
88-
# TODO: If UR is merged into llvm it will require changes:
89-
# - checkout only llvm repo
90-
# - configure UR project from local tree
88+
# TODO:
9189
# - investigate if DUR_CONFORMANCE_AMD_ARCH could be removed
9290
# - find better way to handle platform param (e.g. "Intel(R) OpenCL" -> "opencl")
9391
# - switch to Ninja generator in CMake
94-
#
95-
# Also, the step of downloading DPC++ should be integrated somehow;
96-
# most likely use nightly release.
92+
# - downloading DPC++ should be integrated somehow; most likely use nightly release.
9793
#
9894
- name: Checkout LLVM
9995
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
10096

101-
- name: Checkout UR
102-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
103-
with:
104-
repository: 'oneapi-src/unified-runtime'
105-
path: unified-runtime
106-
ref: main
107-
108-
- name: Install pip packages
97+
- name: Install UR python dependencies
10998
working-directory: ${{github.workspace}}/unified-runtime
11099
run: pip install -r third_party/requirements.txt
111100

@@ -115,7 +104,7 @@ jobs:
115104
mkdir dpcpp_compiler
116105
tar -xvf ${{github.workspace}}/dpcpp_compiler.tar.gz -C dpcpp_compiler
117106
118-
- name: Configure CMake
107+
- name: Configure Unified Runtime project
119108
working-directory: ${{github.workspace}}/unified-runtime
120109
# ">" is used to avoid adding "\" at the end of each line; this command is quite long
121110
run: >

.github/workflows/ur-precommit.yml

Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -37,35 +37,19 @@ permissions: read-all
3737

3838
jobs:
3939
detect_changes:
40+
name: Detect Changes
4041
uses: ./.github/workflows/sycl-detect-changes.yml
4142

42-
# TODO: If UR is merged into llvm it will require changes:
43-
# - 'detect_changes' should be required for all UR jobs
44-
# - 'if' condition should be used, for all UR jobs, to check if UR is affected
45-
# (see example test_job's if)
46-
# - test_job should be removed
47-
#
48-
test_job:
49-
# this is a temporary test job, to show how the 'if' should be used for all UR jobs
50-
name: UR test job
51-
needs: [detect_changes]
52-
if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
53-
runs-on: ubuntu-latest
54-
55-
steps:
56-
- name: Check if UR is affected
57-
run: |
58-
echo "UR affected"
59-
echo 'Filters set: ${{needs.detect_changes.outputs.filters}}'
60-
6143
source_checks:
6244
name: Source Checks
6345
needs: [detect_changes]
46+
if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
6447
uses: ./.github/workflows/ur-source-checks.yml
6548

6649
adapters:
6750
name: Adapters
68-
needs: [source_checks]
51+
needs: [detect_changes, source_checks]
52+
if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
6953
strategy:
7054
matrix:
7155
# Extra native CPU jobs are here to force the loader to be used.
@@ -92,28 +76,17 @@ jobs:
9276

9377
macos:
9478
name: MacOS build only
95-
needs: [source_checks]
79+
needs: [detect_changes, source_checks]
80+
if: ${{ always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur') }}
9681
strategy:
9782
matrix:
9883
os: ['macos-13']
9984
runs-on: ${{matrix.os}}
10085

10186
steps:
102-
# TODO: If UR is merged into llvm it will require changes:
103-
# - checkout only llvm repo
104-
# - configure UR project from local tree
105-
#
10687
- name: Checkout LLVM
10788
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
10889

109-
- name: Checkout UR
110-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
111-
with:
112-
repository: 'oneapi-src/unified-runtime'
113-
path: unified-runtime
114-
ref: main
115-
fetch-depth: 1
116-
11790
- uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
11891
with:
11992
python-version: 3.9
@@ -125,7 +98,7 @@ jobs:
12598
- name: Install hwloc
12699
run: brew install hwloc
127100

128-
- name: Configure CMake
101+
- name: Configure Unified Runtime project
129102
working-directory: ${{github.workspace}}/unified-runtime
130103
run: >
131104
cmake

.github/workflows/ur-source-checks.yml

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,17 @@ jobs:
1515
runs-on: ${{matrix.os}}
1616

1717
steps:
18-
# TODO: If UR is merged into llvm it will require changes:
19-
# - checkout only llvm repo
20-
# - configure UR project from local tree
18+
# TODO:
2119
# - split into separate jobs for each OS
2220
#
2321
- name: Checkout LLVM
2422
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
2523

26-
- name: Checkout UR
27-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
28-
with:
29-
repository: 'oneapi-src/unified-runtime'
30-
path: unified-runtime
31-
ref: main
32-
3324
- uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
3425
with:
3526
python-version: 3.9
3627

37-
- name: Install pip packages
28+
- name: Install UR python dependencies
3829
working-directory: ${{github.workspace}}/unified-runtime
3930
run: pip install -r third_party/requirements.txt
4031

@@ -62,7 +53,7 @@ jobs:
6253
if: matrix.os == 'windows-2022'
6354
run: vcpkg install hwloc:x64-windows
6455

65-
- name: Configure CMake
56+
- name: Configure Unified Runtime project
6657
working-directory: ${{github.workspace}}/unified-runtime
6758
env:
6859
VCPKG_PATH: "C:/vcpkg/packages/hwloc_x64-windows"

clang/include/clang/Basic/DiagnosticDriverKinds.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ def err_drv_unsupported_option_argument : Error<
2222
"unsupported argument '%1' to option '%0'">;
2323
def err_drv_unsupported_option_argument_for_target : Error<
2424
"unsupported argument '%1' to option '%0' for target '%2'">;
25+
def err_drv_unsupported_opt_removed : Error<
26+
"option '%0' is not supported and has been removed from the compiler. Please "
27+
"see the compiler documentation for more details">;
2528
def err_drv_unknown_stdin_type : Error<
2629
"-E or -x required when input is from standard input">;
2730
def err_drv_unknown_stdin_type_clang_cl : Error<

clang/include/clang/Driver/Driver.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,11 @@ class Driver {
617617

618618
/// getSYCLDeviceTriple - Returns the SYCL device triple for the
619619
/// specified subarch
620-
llvm::Triple getSYCLDeviceTriple(StringRef TargetArch = "spir64") const;
620+
// TODO: Additional Arg input parameter is for diagnostic output information
621+
// regarding FPGA support removal. This should be cleaned up in a future
622+
// release.
623+
llvm::Triple getSYCLDeviceTriple(StringRef TargetArch = "spir64",
624+
const llvm::opt::Arg *Arg = nullptr) const;
621625

622626
/// PrintActions - Print the list of actions.
623627
void PrintActions(const Compilation &C) const;

clang/include/clang/Driver/Options.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ enum ClangFlags {
2727
Ignored = (1 << 9),
2828
TargetSpecific = (1 << 10),
2929
Deprecated = (1 << 11),
30+
UnsupportedRemoved = (1 << 12),
3031
};
3132

3233
// Flags specifically for clang option visibility. We alias DefaultVis to

clang/include/clang/Driver/Options.td

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ def NoArgumentUnused : OptionFlag;
5151
// lines that use it.
5252
def Unsupported : OptionFlag;
5353

54+
// UnsupportedRemoved - The option is unsupported and recently removed. Allows
55+
// for special diagnostic handling, and the driver will reject command
56+
// lines that use it.
57+
def UnsupportedRemoved : OptionFlag;
58+
5459
// Ignored - The option is unsupported, and the driver will silently ignore it.
5560
def Ignored : OptionFlag;
5661

@@ -6982,8 +6987,8 @@ defm : FlangIgnoredDiagOpt<"target-lifetime">;
69826987

69836988
// C++ SYCL options
69846989
let Group = sycl_Group in {
6985-
def reuse_exe_EQ : Joined<["-"], "reuse-exe=">, Visibility<[ClangOption, CLOption, DXCOption]>,
6986-
HelpText<"Speed up FPGA aoc compile if the device code in <exe> is unchanged.">,
6990+
def reuse_exe_EQ : Joined<["-"], "reuse-exe=">,
6991+
Visibility<[ClangOption, CLOption, DXCOption]>, Flags<[UnsupportedRemoved]>,
69876992
MetaVarName<"<exe>">;
69886993
def fsycl : Flag<["-"], "fsycl">,
69896994
HelpText<"Enable SYCL C++ extensions">;
@@ -7031,10 +7036,9 @@ def fsycl_default_sub_group_size
70317036
def fsycl_default_sub_group_size_EQ
70327037
: Joined<["-"], "fsycl-default-sub-group-size=">,
70337038
Alias<fsycl_default_sub_group_size>, Visibility<[ClangOption, CC1Option]>;
7034-
def fintelfpga : Flag<["-"], "fintelfpga">,
7039+
def fintelfpga : Flag<["-"], "fintelfpga">, Flags<[UnsupportedRemoved]>,
70357040
Visibility<[ClangOption, CLOption, CC1Option]>,
7036-
MarshallingInfoFlag<LangOpts<"IntelFPGA">>,
7037-
HelpText<"Perform ahead-of-time compilation for FPGA">;
7041+
MarshallingInfoFlag<LangOpts<"IntelFPGA">>;
70387042
def fsycl_embed_ir : Flag<["-"], "fsycl-embed-ir">,
70397043
HelpText<"Embed LLVM IR for runtime kernel fusion">;
70407044
defm sycl_esimd_force_stateless_mem : BoolFOption<"sycl-esimd-force-stateless-mem",
@@ -7131,11 +7135,9 @@ def fsycl_use_bitcode : Flag<["-"], "fsycl-use-bitcode">,
71317135
def fno_sycl_use_bitcode : Flag<["-"], "fno-sycl-use-bitcode">,
71327136
Alias<fsycl_device_obj_EQ>, AliasArgs<["spirv"]>, Flags<[Deprecated]>,
71337137
HelpText<"Use SPIR-V instead of LLVM bitcode in fat objects (deprecated)">;
7134-
def fsycl_link_EQ : Joined<["-"], "fsycl-link=">,
7135-
HelpText<"Generate partially linked device and host object to be used at "
7136-
"various stages of compilation">, Values<"image,early">;
7138+
def fsycl_link_EQ : Joined<["-"], "fsycl-link=">;
71377139
def fsycl_link : Flag<["-"], "fsycl-link">, Alias<fsycl_link_EQ>,
7138-
AliasArgs<["early"]>, HelpText<"Generate partially linked device object to "
7140+
AliasArgs<["default"]>, HelpText<"Generate partially linked device object to "
71397141
"be used with the host link">;
71407142
defm sycl_unnamed_lambda
71417143
: BoolFOption<

0 commit comments

Comments
 (0)