Skip to content

Commit f1224e5

Browse files
author
Alexander Batashev
committed
Merge remote-tracking branch 'upstream/sycl' into deprecate_old_apis
* upstream/sycl: (1804 commits) [SYCL] SYCL 2020 backend interoperability part 1 (intel#3354) [Driver][SYCL] Address issue when unbundling for non-FPGA archive (intel#3366) [SYCL][Doc] Update compiler options descriptions (intel#3340) [SYCL] Update ABI dump tool to disable checks with libcxx by default (intel#3370) [SYCL] Update the way we handle -sycl-std= based on community review feedback (intel#3371) [SYCL] Move tests to llvm-test-suite (intel#3359) [SYCL][PI][L0] Revert copy batching from intel#3232 (intel#3363) [SYCL] Remove unsupported option. [SYCL] Fix pragma setting in sycl-post-link (intel#3358) [SYCL] Add ITT annotation instructions (intel#3299) [SYCL] Propagate attributes of original kernel to wrapper kernel generated for range-rounding (intel#3306) [BuildBot] Uplift GPU RT version for Linux to 21.09.19150 (intel#3316) [SYCL] Retain PI events until they have signaled (intel#3350) [SYCL] Add caching when using interop constructor (intel#3327) Add ITT stubs and wrappers for SPIR-V devices (intel#3279) [SYCL] Add zero argument version of buffer::reinterpret() for SYCL 2020 (intel#3333) [SYCL] Restore old behavior of get() method (intel#3356) [Driver][SYCL][FPGA] Improve FPGA AOT when using Triple (intel#3330) [SYCL] Revert support for pinned_host_memory extension in Level-Zero backend. Make it a NOP (intel#3349) [SYCL] Remove redundant build options processing (intel#3342) ...
2 parents fc8fd37 + 12e8549 commit f1224e5

File tree

5,408 files changed

+191311
-108014
lines changed

Some content is hidden

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

5,408 files changed

+191311
-108014
lines changed

.github/CODEOWNERS

+9-4
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ llvm-spirv/ @AlexeySotkin @AlexeySachkov
1313
opencl-aot/ @dm-vodopyanov @AlexeySachkov @romanovvlad
1414

1515
# Device library
16-
libdevice/ @vzakhari
16+
libdevice/ @vzakhari @jinge90
17+
18+
# DPC++ runtime library
19+
sycl/ @intel/llvm-reviewers-runtime
1720

1821
# Documentation
1922
sycl/ReleaseNotes.md @pvchupin
2023
sycl/doc/ @pvchupin @kbobrovs
2124
sycl/doc/extensions/ @intel/dpcpp-specification-reviewers
2225

23-
# DPC++ runtime library
24-
sycl/ @intel/llvm-reviewers-runtime
25-
2626
# USM
2727
sycl/include/CL/sycl/detail/clusm.hpp @jbrodman
2828
sycl/include/CL/sycl/detail/usm_impl.hpp @jbrodman
@@ -114,3 +114,8 @@ SYCLLowerIR/ @kbobrovs @DenisBakhvalov
114114
esimd/ @kbobrovs @DenisBakhvalov
115115
sycl/include/CL/sycl/INTEL/esimd.hpp @kbobrovs @DenisBakhvalov
116116
sycl/doc/extensions/ExplicitSIMD/ @kbobrovs
117+
118+
# ITT annotations
119+
llvm/lib/Transforms/Instrumentation/SPIRITTAnnotations.cpp @MrSidims
120+
llvm/include/llvm/Transforms/Instrumentation/SPIRITTAnnotations.h @MrSidims
121+

.github/workflows/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Github action workflows should be stored in this directrory.

.github/workflows/clang-format.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818

1919
- name: Run clang-format for the patch
2020
run: |
21-
git diff -U0 --no-color ${GITHUB_SHA}^1 ${GITHUB_SHA} -- | ./clang/tools/clang-format/clang-format-diff.py -p1 -binary clang-format-9 > ./clang-format.patch
21+
git diff --no-color ${GITHUB_SHA}^1 ${GITHUB_SHA} --name-only -- | grep -v "/test/" | xargs git diff -U0 --no-color ${GITHUB_SHA}^1 ${GITHUB_SHA} -- | ./clang/tools/clang-format/clang-format-diff.py -p1 -binary clang-format-9 > ./clang-format.patch
2222
2323
# Add patch with formatting fixes to CI job artifacts
2424
- uses: actions/upload-artifact@v1

.github/workflows/linux_post_commit.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- sycl
77
jobs:
88
check:
9-
runs-on: ubuntu-latest
9+
runs-on: ubuntu-18.04
1010
strategy:
1111
fail-fast: false
1212
matrix:

.github/workflows/main-branch-sync.yml

-25
This file was deleted.

README.md

+8-4
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@
55
Intel staging area for llvm.org contribution.
66
Home for Intel LLVM-based projects:
77

8-
* oneAPI Data Parallel C++ compiler - see **sycl** branch. More information on
9-
oneAPI and DPC++ is available at
10-
[https://www.oneapi.com/](https://www.oneapi.com/)
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/)
1112
* [![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)
1213
[![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.
1316

1417
## License
1518

@@ -23,11 +26,12 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
2326

2427
* oneAPI Data Parallel C++ compiler - See
2528
[DPC++ Documentation](https://intel.github.io/llvm-docs/)
29+
* Late-outline OpenMP\* and OpenMP\* Offload - TBD
2630

2731
## DPC++ extensions
2832

2933
DPC++ is an open, cross-architecture language built upon the ISO C++ and Khronos
3034
SYCL\* standards. DPC++ extends these standards with a number of extensions,
3135
which can be found in [sycl/doc/extensions](sycl/doc/extensions) directory.
3236

33-
\*Other names and brands may be claimed as the property of others.
37+
*\*Other names and brands may be claimed as the property of others.*

buildbot/dependency.conf

+22-22
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
11
[VERSIONS]
2-
# https://github.com/intel/llvm/releases/download/2020-WW45/oclcpuexp-2020.11.11.0.04_rel.tar.gz
3-
ocl_cpu_rt_ver=2020.11.11.0.04
4-
# https://github.com/intel/llvm/releases/download/2020-WW45/win-oclcpuexp-2020.11.11.0.04_rel.zip
5-
ocl_cpu_rt_ver_win=2020.11.11.0.04
2+
# https://github.com/intel/llvm/releases/download/2021-WW11/oclcpuexp-2021.11.3.0.09_rel.tar.gz
3+
ocl_cpu_rt_ver=2021.11.3.0.09
4+
# https://github.com/intel/llvm/releases/download/2021-WW11/win-oclcpuexp-2021.11.3.0.09_rel.zip
5+
ocl_cpu_rt_ver_win=2021.11.3.0.09
66
# Same GPU driver supports Level Zero and OpenCL
7-
# https://github.com/intel/compute-runtime/releases/tag/21.04.18912
8-
ocl_gpu_rt_ver=21.04.18912
7+
# https://github.com/intel/compute-runtime/releases/tag/21.09.19150
8+
ocl_gpu_rt_ver=21.09.19150
99
# Same GPU driver supports Level Zero and OpenCL
10-
# https://downloadmirror.intel.com/30148/a08/igfx_win10_100.9168.zip
11-
ocl_gpu_rt_ver_win=27.20.100.9168
10+
# https://downloadmirror.intel.com/30266/a08/igfx_win10_100.9316.zip
11+
ocl_gpu_rt_ver_win=27.20.100.9316
1212
intel_sycl_ver=build
1313

1414
# TBB binaries can be built from sources following instructions under
1515
# https://github.com/oneapi-src/oneTBB/blob/master/cmake/README.md
1616
# or downloaded using links below:
1717
# https://github.com/oneapi-src/oneTBB/releases/download/v2021.1.1/oneapi-tbb-2021.1.1-lin.tgz
18-
tbb_ver=2021.1.053
18+
tbb_ver=2021.2.0.236
1919
# https://github.com/oneapi-src/oneTBB/releases/download/v2021.1.1/oneapi-tbb-2021.1.1-win.zip
20-
tbb_ver_win=2021.1.049
20+
tbb_ver_win=2021.2.0.221
2121

22-
# https://github.com/intel/llvm/releases/download/2020-WW45/fpgaemu-2020.11.11.0.04_rel.tar.gz
23-
ocl_fpga_emu_ver=2020.11.11.0.04
24-
# https://github.com/intel/llvm/releases/download/2020-WW45/win-fpgaemu-2020.11.11.0.04_rel.zip
25-
ocl_fpga_emu_ver_win=2020.11.11.0.04
26-
fpga_ver=20201021_000005
27-
fpga_ver_win=20201022_000005
22+
# https://github.com/intel/llvm/releases/download/2021-WW11/fpgaemu-2021.11.3.0.09_rel.tar.gz
23+
ocl_fpga_emu_ver=2021.11.3.0.09
24+
# https://github.com/intel/llvm/releases/download/2021-WW11/win-fpgaemu-2021.11.3.0.09_rel.zip
25+
ocl_fpga_emu_ver_win=2021.11.3.0.09
26+
fpga_ver=20210205_000003
27+
fpga_ver_win=20210204_000003_signed_bom_fixed
2828
ocloc_ver_win=27.20.100.9168
2929

3030
[DRIVER VERSIONS]
31-
cpu_driver_lin=2020.11.11.0.04
32-
cpu_driver_win=2020.11.11.0.04
33-
gpu_driver_lin=21.04.18912
34-
gpu_driver_win=27.20.100.9168
35-
fpga_driver_lin=2020.11.11.0.04
36-
fpga_driver_win=2020.11.11.0.04
31+
cpu_driver_lin=2021.11.3.0.09
32+
cpu_driver_win=2021.11.3.0.09
33+
gpu_driver_lin=21.09.19150
34+
gpu_driver_win=27.20.100.9316
35+
fpga_driver_lin=2021.11.3.0.09
36+
fpga_driver_win=2021.11.3.0.09
3737
# NVidia CUDA driver
3838
# TODO provide URL for CUDA driver
3939
nvidia_gpu_driver_lin=435.21

buildbot/dependency.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -49,24 +49,35 @@ def do_dependency(args):
4949
# fetch OpenCL headers
5050
ocl_header_dir = os.path.join(args.obj_dir, "OpenCL-Headers")
5151
if not os.path.isdir(ocl_header_dir):
52-
clone_cmd = ["git", "clone", "https://github.com/KhronosGroup/OpenCL-Headers", "OpenCL-Headers"]
52+
clone_cmd = ["git", "clone", "https://github.com/KhronosGroup/OpenCL-Headers",
53+
"OpenCL-Headers", "-b", "master"]
5354
subprocess.check_call(clone_cmd, cwd=args.obj_dir)
5455
else:
5556
fetch_cmd = ["git", "pull", "--ff", "--ff-only", "origin"]
5657
subprocess.check_call(fetch_cmd, cwd=ocl_header_dir)
5758

59+
# Checkout fixed version to avoid unexpected issues coming from upstream
60+
# Specific version can be uplifted as soon as such need arise
61+
checkout_cmd = ["git", "checkout", "23710f1b99186065c1768fc3098ba681adc0f253"]
62+
subprocess.check_call(checkout_cmd, cwd=ocl_header_dir)
63+
5864
# fetch and build OpenCL ICD loader
5965
icd_loader_dir = os.path.join(args.obj_dir, "OpenCL-ICD-Loader")
6066
if not os.path.isdir(icd_loader_dir):
6167
clone_cmd = ["git", "clone",
6268
"https://github.com/KhronosGroup/OpenCL-ICD-Loader",
63-
"OpenCL-ICD-Loader", "-b", "v2020.06.16"]
69+
"OpenCL-ICD-Loader", "-b", "master"]
6470

6571
subprocess.check_call(clone_cmd, cwd=args.obj_dir)
6672
else:
6773
fetch_cmd = ["git", "pull", "--ff", "--ff-only", "origin"]
6874
subprocess.check_call(fetch_cmd, cwd=icd_loader_dir)
6975

76+
# Checkout fixed version to avoid unexpected issues coming from upstream
77+
# Specific version can be uplifted as soon as such need arise
78+
checkout_cmd = ["git", "checkout", "5f8249691ec8c25775789498951f8e9eb62c201d"]
79+
subprocess.check_call(checkout_cmd, cwd=icd_loader_dir)
80+
7081
icd_build_dir = os.path.join(icd_loader_dir, "build")
7182
if os.path.isdir(icd_build_dir):
7283
shutil.rmtree(icd_build_dir)
@@ -113,4 +124,3 @@ def main():
113124
ret = main()
114125
exit_code = 0 if ret else 1
115126
sys.exit(exit_code)
116-

clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp

+7-2
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,13 @@ llvm::ErrorOr<std::vector<std::string>> GetAllowedSymbolPatterns() {
9999

100100
int main(int argc, const char **argv) {
101101
llvm::sys::PrintStackTraceOnErrorSignal(argv[0]);
102-
tooling::CommonOptionsParser OptionsParser(argc, argv,
103-
ChangeNamespaceCategory);
102+
auto ExpectedParser =
103+
tooling::CommonOptionsParser::create(argc, argv, ChangeNamespaceCategory);
104+
if (!ExpectedParser) {
105+
llvm::errs() << ExpectedParser.takeError();
106+
return 1;
107+
}
108+
tooling::CommonOptionsParser &OptionsParser = ExpectedParser.get();
104109
const auto &Files = OptionsParser.getSourcePathList();
105110
tooling::RefactoringTool Tool(OptionsParser.getCompilations(), Files);
106111
llvm::ErrorOr<std::vector<std::string>> AllowedPatterns =

clang-tools-extra/clang-include-fixer/SymbolIndexManager.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ SymbolIndexManager::search(llvm::StringRef Identifier,
149149
rank(MatchedSymbols, FileName);
150150
// Strip signals, they are no longer needed.
151151
std::vector<SymbolInfo> Res;
152+
Res.reserve(MatchedSymbols.size());
152153
for (auto &SymAndSig : MatchedSymbols)
153154
Res.push_back(std::move(SymAndSig.Symbol));
154155
return Res;

clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp

+8-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,14 @@ bool Merge(llvm::StringRef MergeDir, llvm::StringRef OutputFile) {
128128
} // namespace find_all_symbols
129129

130130
int main(int argc, const char **argv) {
131-
CommonOptionsParser OptionsParser(argc, argv, FindAllSymbolsCategory);
131+
auto ExpectedParser =
132+
CommonOptionsParser::create(argc, argv, FindAllSymbolsCategory);
133+
if (!ExpectedParser) {
134+
llvm::errs() << ExpectedParser.takeError();
135+
return 1;
136+
}
137+
138+
CommonOptionsParser &OptionsParser = ExpectedParser.get();
132139
ClangTool Tool(OptionsParser.getCompilations(),
133140
OptionsParser.getSourcePathList());
134141

clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,13 @@ void writeToJson(llvm::raw_ostream &OS, const IncludeFixerContext& Context) {
263263
}
264264

265265
int includeFixerMain(int argc, const char **argv) {
266-
tooling::CommonOptionsParser options(argc, argv, IncludeFixerCategory);
266+
auto ExpectedParser =
267+
tooling::CommonOptionsParser::create(argc, argv, IncludeFixerCategory);
268+
if (!ExpectedParser) {
269+
llvm::errs() << ExpectedParser.takeError();
270+
return 1;
271+
}
272+
tooling::CommonOptionsParser &options = ExpectedParser.get();
267273
tooling::ClangTool tool(options.getCompilations(),
268274
options.getSourcePathList());
269275

clang-tools-extra/clang-move/tool/ClangMove.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,13 @@ cl::opt<bool> DumpDecls(
9595

9696
int main(int argc, const char **argv) {
9797
llvm::sys::PrintStackTraceOnErrorSignal(argv[0]);
98-
tooling::CommonOptionsParser OptionsParser(argc, argv, ClangMoveCategory);
98+
auto ExpectedParser =
99+
tooling::CommonOptionsParser::create(argc, argv, ClangMoveCategory);
100+
if (!ExpectedParser) {
101+
llvm::errs() << ExpectedParser.takeError();
102+
return 1;
103+
}
104+
tooling::CommonOptionsParser &OptionsParser = ExpectedParser.get();
99105

100106
if (OldDependOnNew && NewDependOnOld) {
101107
llvm::errs() << "Provide either --old_depend_on_new or "

clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp

+8-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,14 @@ static cl::opt<bool> Inplace("i", cl::desc("Overwrite edited files."),
5050
const char Usage[] = "A tool to reorder fields in C/C++ structs/classes.\n";
5151

5252
int main(int argc, const char **argv) {
53-
tooling::CommonOptionsParser OP(argc, argv, ClangReorderFieldsCategory,
54-
Usage);
53+
auto ExpectedParser = tooling::CommonOptionsParser::create(
54+
argc, argv, ClangReorderFieldsCategory, cl::OneOrMore, Usage);
55+
if (!ExpectedParser) {
56+
llvm::errs() << ExpectedParser.takeError();
57+
return 1;
58+
}
59+
60+
tooling::CommonOptionsParser &OP = ExpectedParser.get();
5561

5662
auto Files = OP.getSourcePathList();
5763
tooling::RefactoringTool Tool(OP.getCompilations(), Files);

clang-tools-extra/clang-tidy/ClangTidy.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class AnalyzerDiagnosticConsumer : public ento::PathDiagnosticConsumer {
6767
AnalyzerDiagnosticConsumer(ClangTidyContext &Context) : Context(Context) {}
6868

6969
void FlushDiagnosticsImpl(std::vector<const ento::PathDiagnostic *> &Diags,
70-
FilesMade *filesMade) override {
70+
FilesMade *FilesMade) override {
7171
for (const ento::PathDiagnostic *PD : Diags) {
7272
SmallString<64> CheckName(AnalyzerCheckNamePrefix);
7373
CheckName += PD->getCheckerName();
@@ -186,7 +186,7 @@ class ErrorReporter {
186186
reportNote(Note);
187187
}
188188

189-
void Finish() {
189+
void finish() {
190190
if (ApplyFixes && TotalFixes > 0) {
191191
Rewriter Rewrite(SourceMgr, LangOpts);
192192
for (const auto &FileAndReplacements : FileReplacements) {
@@ -596,7 +596,7 @@ void handleErrors(llvm::ArrayRef<ClangTidyError> Errors,
596596
// Return to the initial directory to correctly resolve next Error.
597597
FileSystem.setCurrentWorkingDirectory(InitialWorkingDir.get());
598598
}
599-
Reporter.Finish();
599+
Reporter.finish();
600600
WarningsAsErrorsCount += Reporter.getWarningsAsErrorsCount();
601601
}
602602

clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp

-4
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,6 @@
3737
using namespace clang;
3838
using namespace tidy;
3939

40-
#ifdef LLVM_CLANG_AST_ATTR_H
41-
//#error
42-
#endif
43-
4440
namespace {
4541
class ClangTidyDiagnosticRenderer : public DiagnosticRenderer {
4642
public:

clang-tools-extra/clang-tidy/ClangTidyOptions.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ template <> struct MappingTraits<FileFilter> {
4747
IO.mapRequired("name", File.Name);
4848
IO.mapOptional("lines", File.LineRanges);
4949
}
50-
static std::string validate(IO &io, FileFilter &File) {
50+
static std::string validate(IO &Io, FileFilter &File) {
5151
if (File.Name.empty())
5252
return "No file name specified";
5353
for (const FileFilter::LineRange &Range : File.LineRanges) {

clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ void ExpandModularHeadersPPCallbacks::handleModuleFile(
125125
Recorder->addNecessaryFile(IF.getFile());
126126
});
127127
// Recursively handle all transitively imported modules.
128-
for (auto Import : MF->Imports)
128+
for (auto *Import : MF->Imports)
129129
handleModuleFile(Import);
130130
}
131131

clang-tools-extra/clang-tidy/GlobList.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ using namespace tidy;
1414

1515
// Returns true if GlobList starts with the negative indicator ('-'), removes it
1616
// from the GlobList.
17-
static bool ConsumeNegativeIndicator(StringRef &GlobList) {
17+
static bool consumeNegativeIndicator(StringRef &GlobList) {
1818
GlobList = GlobList.trim(" \r\n");
1919
if (GlobList.startswith("-")) {
2020
GlobList = GlobList.substr(1);
@@ -25,7 +25,7 @@ static bool ConsumeNegativeIndicator(StringRef &GlobList) {
2525

2626
// Converts first glob from the comma-separated list of globs to Regex and
2727
// removes it and the trailing comma from the GlobList.
28-
static llvm::Regex ConsumeGlob(StringRef &GlobList) {
28+
static llvm::Regex consumeGlob(StringRef &GlobList) {
2929
StringRef UntrimmedGlob = GlobList.substr(0, GlobList.find(','));
3030
StringRef Glob = UntrimmedGlob.trim(' ');
3131
GlobList = GlobList.substr(UntrimmedGlob.size() + 1);
@@ -46,8 +46,8 @@ GlobList::GlobList(StringRef Globs) {
4646
Items.reserve(Globs.count(',') + 1);
4747
do {
4848
GlobListItem Item;
49-
Item.IsPositive = !ConsumeNegativeIndicator(Globs);
50-
Item.Regex = ConsumeGlob(Globs);
49+
Item.IsPositive = !consumeNegativeIndicator(Globs);
50+
Item.Regex = consumeGlob(Globs);
5151
Items.push_back(std::move(Item));
5252
} while (!Globs.empty());
5353
}

0 commit comments

Comments
 (0)