Skip to content

Commit 4d2651c

Browse files
authored
Merge branch 'sycl' into property_list
2 parents 545a882 + f54029d commit 4d2651c

File tree

16,731 files changed

+1180201
-653805
lines changed

Some content is hidden

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

16,731 files changed

+1180201
-653805
lines changed

.github/CODEOWNERS

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
* @bader
22

33
# Front-end compiler
4-
clang/ @premanandrao @elizabethandrews @AaronBallman
4+
clang/ @premanandrao @elizabethandrews
55

66
# Driver
7-
clang/**/Driver @mdtoguchi @AGindinson
7+
clang/**/Driver @mdtoguchi @AGindinson @hchilama
88

99
# LLVM-SPIRV translator
1010
llvm-spirv/ @AlexeySotkin @AlexeySachkov
@@ -22,7 +22,7 @@ libdevice/ @vzakhari @jinge90
2222
sycl/ @intel/llvm-reviewers-runtime
2323

2424
# Documentation
25-
sycl/ReleaseNotes.md @pvchupin
25+
sycl/ReleaseNotes.md @pvchupin @tfzhu
2626
sycl/doc/ @pvchupin @bader
2727
sycl/doc/extensions/ @intel/dpcpp-specification-reviewers
2828

@@ -33,15 +33,18 @@ sycl/include/sycl/ext/intel/sub_group.hpp @Pennycook @AlexeySachkov
3333
sycl/include/sycl/ext/intel/sub_group_host.hpp @Pennycook @AlexeySachkov
3434

3535
# PI API
36-
sycl/include/CL/sycl/detail/pi.def @smaslov-intel
37-
sycl/include/CL/sycl/detail/pi.h @smaslov-intel
38-
sycl/include/CL/sycl/detail/pi.hpp @smaslov-intel
39-
sycl/include/CL/sycl/detail/pi* @smaslov-intel
40-
sycl/plugins/ @smaslov-intel
41-
sycl/source/detail/pi.cpp @smaslov-intel
42-
sycl/source/detail/plugin.hpp @smaslov-intel
43-
sycl/source/detail/posix_pi.cpp @smaslov-intel
44-
sycl/source/detail/windows_pi.cpp @smaslov-intel
36+
sycl/include/CL/sycl/detail/pi.def @smaslov-intel @againull
37+
sycl/include/CL/sycl/detail/pi.h @smaslov-intel @againull
38+
sycl/include/CL/sycl/detail/pi.hpp @smaslov-intel @againull
39+
sycl/include/CL/sycl/detail/pi* @smaslov-intel @againull
40+
sycl/plugins/ @smaslov-intel @againull
41+
sycl/source/detail/pi.cpp @smaslov-intel @againull
42+
sycl/source/detail/plugin.hpp @smaslov-intel @againull
43+
sycl/source/detail/posix_pi.cpp @smaslov-intel @againull
44+
sycl/source/detail/windows_pi.cpp @smaslov-intel @againull
45+
46+
# ESIMD CPU emulator plug-in
47+
sycl/plugins/esimd_cpu/ @kbobrovs @smaslov-intel
4548

4649
# CUDA plugin
4750
sycl/plugins/cuda/ @intel/llvm-reviewers-cuda
@@ -70,13 +73,9 @@ sycl/source/function_pointer.cpp @AlexeySachkov
7073
sycl/include/CL/sycl/half_type.hpp @AlexeySachkov
7174
sycl/source/half_type.cpp @AlexeySachkov
7275

73-
# vec and swizzles
74-
sycl/include/CL/sycl/swizzles.def @turinevgeny
75-
sycl/include/CL/sycl/types.hpp @turinevgeny
76-
7776
# XPTI instrumentation utilities
78-
xpti/ @tovinkere @andykaylor
79-
xptifw/ @tovinkere @andykaylor
77+
xpti/ @tovinkere @andykaylor @alexbatashev
78+
xptifw/ @tovinkere @andykaylor @alexbatashev
8079

8180
# DPC++ tools
8281
llvm/**/append-file/ @mdtoguchi @AGindinson
@@ -99,10 +98,10 @@ clang/tools/clang-offload-deps/ @sndmitriev @mlychkov @AlexeySachkov
9998
clang/tools/clang-offload-extract/ @sndmitriev @mlychkov @AlexeySachkov
10099

101100
# Explicit SIMD
102-
SYCLLowerIR/ @kbobrovs @DenisBakhvalov
103-
esimd/ @kbobrovs @DenisBakhvalov
104-
sycl/include/sycl/ext/intel/experimental/esimd.hpp @kbobrovs @DenisBakhvalov
105-
sycl/doc/extensions/ExplicitSIMD/ @kbobrovs
101+
SYCLLowerIR/ @kbobrovs @sndmitriev @kychendev @v-klochkov
102+
esimd/ @kbobrovs @v-klochkov @kychendev
103+
sycl/include/sycl/ext/intel/experimental/esimd.hpp @kbobrovs @v-klochkov @kychendev
104+
sycl/doc/extensions/ExplicitSIMD/ @kbobrovs @v-klochkov @kychendev
106105

107106
# ITT annotations
108107
llvm/lib/Transforms/Instrumentation/SPIRITTAnnotations.cpp @MrSidims @vzakhari

.github/workflows/gh_pages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Install deps
1717
run: |
1818
sudo apt-get install -y doxygen graphviz ssh ninja-build
19-
sudo pip3 install 'sphinx==3.0.0' 'recommonmark==0.6.0' 'sphinx_markdown_tables==0.0.12'
19+
sudo pip3 install 'sphinx==4.1.2' 'myst-parser==0.15.1'
2020
- name: Build Docs
2121
run: |
2222
mkdir -p $GITHUB_WORKSPACE/build

.github/workflows/linux_post_commit.yml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- sycl
77
jobs:
88
check:
9-
runs-on: ubuntu-18.04
9+
runs-on: ubuntu-20.04
1010
if: github.repository == 'intel/llvm'
1111
strategy:
1212
fail-fast: false
@@ -18,7 +18,15 @@ jobs:
1818
with:
1919
path: src
2020
- name: Install Ubuntu deps
21-
run: sudo apt install -y ninja-build
21+
run: sudo apt install -y ninja-build ccache
22+
- name: Setup Cache
23+
uses: actions/cache@v2
24+
id: cache
25+
with:
26+
path: ${{ github.workspace }}/cache
27+
key: build-${{ runner.os }}-${{ matrix.config }}-${{ github.sha }}
28+
restore-keys: |
29+
build-${{ runner.os }}-${{ matrix.config }}-
2230
- name: Configure
2331
run: |
2432
CONFIG=${{ matrix.config }}
@@ -28,12 +36,12 @@ jobs:
2836
;;
2937
SharedLibs)
3038
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
31-
sudo add-apt-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-12 main"
39+
sudo add-apt-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main"
3240
sudo apt-get update
33-
sudo apt-get install -y clang-12
41+
sudo apt-get install -y clang-13
3442
export ARGS="--shared-libs"
35-
export CC="clang-12"
36-
export CXX="clang++-12"
43+
export CC="clang-13"
44+
export CXX="clang++-13"
3745
;;
3846
NoAssertions)
3947
export ARGS="--no-assertions"
@@ -42,7 +50,10 @@ jobs:
4250
mkdir -p $GITHUB_WORKSPACE/build
4351
cd $GITHUB_WORKSPACE/build
4452
python3 $GITHUB_WORKSPACE/src/buildbot/configure.py -w $GITHUB_WORKSPACE \
45-
-s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t Release $ARGS
53+
-s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t Release \
54+
--ci-defaults $ARGS --cmake-opt="-DLLVM_CCACHE_BUILD=ON" \
55+
--cmake-opt="-DLLVM_CCACHE_DIR=$GITHUB_WORKSPACE/cache" \
56+
--cmake-opt="-DLLVM_CCACHE_MAXSIZE=2G"
4657
- name: Compile
4758
run: |
4859
python3 $GITHUB_WORKSPACE/src/buildbot/compile.py -w $GITHUB_WORKSPACE \
@@ -67,11 +78,15 @@ jobs:
6778
run: |
6879
python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w $GITHUB_WORKSPACE \
6980
-s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-llvm-spirv
81+
- name: check-xptifw
82+
if: always()
83+
run: |
84+
python3 $GITHUB_WORKSPACE/src/buildbot/check.py -w $GITHUB_WORKSPACE \
85+
-s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build -t check-xptifw
7086
- name: Pack
7187
run: tar -czvf llvm_sycl.tar.gz -C $GITHUB_WORKSPACE/build/install .
7288
- name: Upload artifacts
7389
uses: actions/upload-artifact@v1
7490
with:
7591
name: sycl_linux_${{ matrix.config }}
7692
path: llvm_sycl.tar.gz
77-

.mailmap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
2929
3030
31-
Jon Roelofs <[email protected]> Jon Roelofs <jroelofs@jroelofs.com>
32-
Jon Roelofs <[email protected]> Jonathan Roelofs <jonathan@codesourcery.com>
33-
Jon Roelofs <[email protected]> Jonathan Roelofs <jroelofs@jroelofs.com>
31+
Jon Roelofs <[email protected]> <jonathan@codesourcery.com>
32+
Jon Roelofs <[email protected]> <jroelofs@jroelofs.com>
33+
LLVM GN Syncbot <llvmgnsyncbot@gmail.com>
3434
Martin Storsjö <[email protected]>
35-
Saleem Abdulrasool <[email protected]> <[email protected]>
35+
Saleem Abdulrasool <[email protected]>

CONTRIBUTING.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ see [ABI Policy Guide](sycl/doc/ABIPolicyGuide.md) for more information.
3838
- [clang-format](https://clang.llvm.org/docs/ClangFormat.html) and
3939
[clang-tidy](https://clang.llvm.org/extra/clang-tidy/) tools can be
4040
integrated into your workflow to ensure formatting and stylistic
41-
compliance of your changes.
41+
compliance of your changes. To avoid code formatting misalignment with
42+
GitHub Actions check we recommend using 10 version of clang-format tool
43+
(default version on Ubuntu 20.04).
4244
- use
4345

4446
```bash
@@ -66,11 +68,6 @@ There are 3 types of tests which are used for DPC++ toolchain validation:
6668
should not have hardware (e.g. GPU, FPGA, etc.) or external software
6769
dependencies (e.g. OpenCL, Level Zero, CUDA runtimes). All tests not following
6870
this approach should be moved to DPC++ end-to-end or SYCL-CTS tests.
69-
However, the tests for a feature under active development requiring atomic
70-
change for tests and product can be put to
71-
[sycl/test/on-device](../../sycl/test/on-device) temporarily. It is developer
72-
responsibility to move the tests to DPC++ E2E test suite or SYCL-CTS once
73-
the feature is stabilized.
7471

7572
**Guidelines for adding DPC++ in-tree LIT tests (DPC++ Clang FE tests)**:
7673
- Use `sycl::` namespace instead of `cl::sycl::`

README.md

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,30 @@
11
# Intel Project for LLVM\* technology
22

3-
## Introduction
3+
Intel staging area for llvm.org contribution. Home for Intel LLVM-based projects:
44

5-
Intel staging area for llvm.org contribution.
6-
Home for Intel LLVM-based projects:
5+
## oneAPI Data Parallel C++ compiler
76

8-
* oneAPI Data Parallel C++ compiler - see
9-
[sycl](https://github.com/intel/llvm/tree/sycl) branch. More information on
10-
oneAPI and DPC++ is available at
11-
[https://www.oneapi.com/](https://www.oneapi.com/)
12-
* [![Linux Post Commit Checks](https://github.com/intel/llvm/workflows/Linux%20Post%20Commit%20Checks/badge.svg)](https://github.com/intel/llvm/actions?query=workflow%3A%22Linux+Post+Commit+Checks%22)
13-
[![Generate Doxygen documentation](https://github.com/intel/llvm/workflows/Generate%20Doxygen%20documentation/badge.svg)](https://github.com/intel/llvm/actions?query=workflow%3A%22Generate+Doxygen+documentation%22)
14-
* Late-outline OpenMP\* and OpenMP\* Offload - see
15-
[openmp](https://github.com/intel/llvm/tree/openmp) branch.
7+
[![](https://spec.oneapi.io/oneapi-logo-white-scaled.jpg)](https://www.oneapi.io/)
168

17-
## License
9+
See [sycl](https://github.com/intel/llvm/tree/sycl) branch and
10+
[DPC++ Documentation](https://intel.github.io/llvm-docs/).
1811

19-
See [LICENSE.txt](sycl/LICENSE.TXT) for details.
12+
[![Linux Post Commit Checks](https://github.com/intel/llvm/workflows/Linux%20Post%20Commit%20Checks/badge.svg)](https://github.com/intel/llvm/actions?query=workflow%3A%22Linux+Post+Commit+Checks%22)
13+
[![Generate Doxygen documentation](https://github.com/intel/llvm/workflows/Generate%20Doxygen%20documentation/badge.svg)](https://github.com/intel/llvm/actions?query=workflow%3A%22Generate+Doxygen+documentation%22)
2014

21-
## Contributing
15+
DPC++ is an open, cross-architecture language built upon the ISO C++ and Khronos
16+
SYCL\* standards. DPC++ extends these standards with a number of extensions,
17+
which can be found in [sycl/doc/extensions](sycl/doc/extensions) directory.
2218

23-
See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
19+
## Late-outline OpenMP\* and OpenMP\* Offload
20+
See [openmp](https://github.com/intel/llvm/tree/openmp) branch.
2421

25-
## Sub-projects Documentation
22+
# License
2623

27-
* oneAPI Data Parallel C++ compiler - See
28-
[DPC++ Documentation](https://intel.github.io/llvm-docs/)
29-
* Late-outline OpenMP\* and OpenMP\* Offload - TBD
24+
See [LICENSE.txt](sycl/LICENSE.TXT) for details.
3025

31-
## DPC++ extensions
26+
# Contributing
3227

33-
DPC++ is an open, cross-architecture language built upon the ISO C++ and Khronos
34-
SYCL\* standards. DPC++ extends these standards with a number of extensions,
35-
which can be found in [sycl/doc/extensions](sycl/doc/extensions) directory.
28+
See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
3629

3730
*\*Other names and brands may be claimed as the property of others.*

buildbot/configure.py

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@ def do_configure(args):
2727
llvm_targets_to_build = 'X86'
2828
llvm_enable_projects = 'clang;' + llvm_external_projects
2929
libclc_targets_to_build = ''
30+
libclc_gen_remangled_variants = 'OFF'
3031
sycl_build_pi_cuda = 'OFF'
31-
sycl_build_pi_esimd_cpu = 'ON'
32-
sycl_build_pi_rocm = 'OFF'
33-
sycl_build_pi_rocm_platform = 'AMD'
32+
sycl_build_pi_esimd_cpu = 'OFF'
33+
sycl_build_pi_hip = 'OFF'
34+
sycl_build_pi_hip_platform = 'AMD'
35+
sycl_clang_extra_flags = ''
3436
sycl_werror = 'ON'
3537
llvm_enable_assertions = 'ON'
3638
llvm_enable_doxygen = 'OFF'
@@ -39,35 +41,49 @@ def do_configure(args):
3941
llvm_enable_lld = 'OFF'
4042

4143
sycl_enable_xpti_tracing = 'ON'
44+
xpti_enable_werror = 'ON'
45+
46+
if args.ci_defaults:
47+
print("#############################################")
48+
print("# Default CI configuration will be applied. #")
49+
print("#############################################")
4250

4351
# replace not append, so ARM ^ X86
4452
if args.arm:
4553
llvm_targets_to_build = 'ARM;AArch64'
4654

47-
if args.disable_esimd_cpu:
48-
sycl_build_pi_esimd_cpu = 'OFF'
55+
if args.enable_esimd_cpu_emulation:
56+
sycl_build_pi_esimd_cpu = 'ON'
4957

50-
if args.cuda or args.rocm:
58+
if args.cuda or args.hip:
5159
llvm_enable_projects += ';libclc'
5260

5361
if args.cuda:
5462
llvm_targets_to_build += ';NVPTX'
5563
libclc_targets_to_build = 'nvptx64--;nvptx64--nvidiacl'
64+
libclc_gen_remangled_variants = 'ON'
5665
sycl_build_pi_cuda = 'ON'
5766

58-
if args.rocm:
59-
if args.rocm_platform == 'AMD':
67+
if args.hip:
68+
if args.hip_platform == 'AMD':
6069
llvm_targets_to_build += ';AMDGPU'
6170
libclc_targets_to_build += ';amdgcn--;amdgcn--amdhsa'
62-
elif args.rocm_platform == 'NVIDIA' and not args.cuda:
71+
if args.hip_amd_arch:
72+
sycl_clang_extra_flags += "-Xsycl-target-backend=amdgcn-amd-amdhsa --offload-arch="+args.hip_amd_arch
73+
74+
# The HIP plugin for AMD uses lld for linking
75+
llvm_enable_projects += ';lld'
76+
elif args.hip_platform == 'NVIDIA' and not args.cuda:
6377
llvm_targets_to_build += ';NVPTX'
6478
libclc_targets_to_build += ';nvptx64--;nvptx64--nvidiacl'
79+
libclc_gen_remangled_variants = 'ON'
6580

66-
sycl_build_pi_rocm_platform = args.rocm_platform
67-
sycl_build_pi_rocm = 'ON'
81+
sycl_build_pi_hip_platform = args.hip_platform
82+
sycl_build_pi_hip = 'ON'
6883

6984
if args.no_werror:
7085
sycl_werror = 'OFF'
86+
xpti_enable_werror = 'OFF'
7187

7288
if args.no_assertions:
7389
llvm_enable_assertions = 'OFF'
@@ -99,9 +115,10 @@ def do_configure(args):
99115
"-DLLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR={}".format(libdevice_dir),
100116
"-DLLVM_ENABLE_PROJECTS={}".format(llvm_enable_projects),
101117
"-DLIBCLC_TARGETS_TO_BUILD={}".format(libclc_targets_to_build),
118+
"-DLIBCLC_GENERATE_REMANGLED_VARIANTS={}".format(libclc_gen_remangled_variants),
102119
"-DSYCL_BUILD_PI_CUDA={}".format(sycl_build_pi_cuda),
103-
"-DSYCL_BUILD_PI_ROCM={}".format(sycl_build_pi_rocm),
104-
"-DSYCL_BUILD_PI_ROCM_PLATFORM={}".format(sycl_build_pi_rocm_platform),
120+
"-DSYCL_BUILD_PI_HIP={}".format(sycl_build_pi_hip),
121+
"-DSYCL_BUILD_PI_HIP_PLATFORM={}".format(sycl_build_pi_hip_platform),
105122
"-DLLVM_BUILD_TOOLS=ON",
106123
"-DSYCL_ENABLE_WERROR={}".format(sycl_werror),
107124
"-DCMAKE_INSTALL_PREFIX={}".format(install_dir),
@@ -111,7 +128,9 @@ def do_configure(args):
111128
"-DBUILD_SHARED_LIBS={}".format(llvm_build_shared_libs),
112129
"-DSYCL_ENABLE_XPTI_TRACING={}".format(sycl_enable_xpti_tracing),
113130
"-DLLVM_ENABLE_LLD={}".format(llvm_enable_lld),
114-
"-DSYCL_BUILD_PI_ESIMD_CPU={}".format(sycl_build_pi_esimd_cpu)
131+
"-DSYCL_BUILD_PI_ESIMD_CPU={}".format(sycl_build_pi_esimd_cpu),
132+
"-DXPTI_ENABLE_WERROR={}".format(xpti_enable_werror),
133+
"-DSYCL_CLANG_EXTRA_FLAGS={}".format(sycl_clang_extra_flags)
115134
]
116135

117136
if args.l0_headers and args.l0_loader:
@@ -171,10 +190,11 @@ def main():
171190
parser.add_argument("-t", "--build-type",
172191
metavar="BUILD_TYPE", default="Release", help="build type: Debug, Release")
173192
parser.add_argument("--cuda", action='store_true', help="switch from OpenCL to CUDA")
174-
parser.add_argument("--rocm", action='store_true', help="switch from OpenCL to ROCm")
175-
parser.add_argument("--rocm-platform", type=str, choices=['AMD', 'NVIDIA'], default='AMD', help="choose ROCm backend")
193+
parser.add_argument("--hip", action='store_true', help="switch from OpenCL to HIP")
194+
parser.add_argument("--hip-platform", type=str, choices=['AMD', 'NVIDIA'], default='AMD', help="choose hardware platform for HIP backend")
195+
parser.add_argument("--hip-amd-arch", type=str, help="Sets AMD gpu architecture for llvm lit tests, this is only needed for the HIP backend and AMD platform")
176196
parser.add_argument("--arm", action='store_true', help="build ARM support rather than x86")
177-
parser.add_argument("--disable-esimd-cpu", action='store_true', help="build without ESIMD_CPU support")
197+
parser.add_argument("--enable-esimd-cpu-emulation", action='store_true', help="build with ESIMD_CPU emulation support")
178198
parser.add_argument("--no-assertions", action='store_true', help="build without assertions")
179199
parser.add_argument("--docs", action='store_true', help="build Doxygen documentation")
180200
parser.add_argument("--no-werror", action='store_true', help="Don't treat warnings as errors")
@@ -186,6 +206,7 @@ def main():
186206
parser.add_argument("--libcxx-library", metavar="LIBCXX_LIBRARY_PATH", help="libcxx library path")
187207
parser.add_argument("--use-lld", action="store_true", help="Use LLD linker for build")
188208
parser.add_argument("--llvm-external-projects", help="Add external projects to build. Add as comma seperated list.")
209+
parser.add_argument("--ci-defaults", action="store_true", help="Enable default CI parameters")
189210
args = parser.parse_args()
190211

191212
print("args:{}".format(args))

0 commit comments

Comments
 (0)