Skip to content

Commit 00c082f

Browse files
committed
Merge branch 'sycl' of https://github.com/otcshare/llvm into akp2
2 parents 810af7b + f998e6b commit 00c082f

File tree

25 files changed

+749
-218
lines changed

25 files changed

+749
-218
lines changed

buildbot/dependency.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,6 @@ gpu_driver_lin=20.21.16886
2626
gpu_driver_win=27.20.100.8280
2727
fpga_driver_lin=2020.9.2.0
2828
fpga_driver_win=2020.9.2.0
29+
# NVidia CUDA driver
30+
# http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-drivers_450.36.06-1_amd64.deb
31+
nvidia_gpu_driver_lin=450.36.06

clang/include/clang/Driver/Options.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2749,6 +2749,8 @@ def nostdincxx : Flag<["-"], "nostdinc++">, Flags<[CC1Option]>,
27492749
HelpText<"Disable standard #include directories for the C++ standard library">;
27502750
def nostdlib : Flag<["-"], "nostdlib">;
27512751
def nostdlibxx : Flag<["-"], "nostdlib++">;
2752+
def nolibsycl : Flag<["-"], "nolibsycl">, Flags<[DriverOption, CoreOption]>,
2753+
HelpText<"Do not link SYCL runtime library">;
27522754
def object : Flag<["-"], "object">;
27532755
def o : JoinedOrSeparate<["-"], "o">, Flags<[DriverOption, RenderAsInput, CC1Option, CC1AsOption]>,
27542756
HelpText<"Write output to <file>">, MetaVarName<"<file>">;

clang/lib/Basic/Targets/SPIR.h

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -24,37 +24,37 @@ namespace clang {
2424
namespace targets {
2525

2626
static const unsigned SPIRAddrSpaceMap[] = {
27-
0, // Default
28-
1, // opencl_global
29-
3, // opencl_local
30-
2, // opencl_constant
31-
0, // opencl_private
32-
4, // opencl_generic
33-
11, // opencl_global_device
34-
12, // opencl_global_host
35-
0, // cuda_device
36-
0, // cuda_constant
37-
0, // cuda_shared
38-
0, // ptr32_sptr
39-
0, // ptr32_uptr
40-
0 // ptr64
27+
0, // Default
28+
1, // opencl_global
29+
3, // opencl_local
30+
2, // opencl_constant
31+
0, // opencl_private
32+
4, // opencl_generic
33+
5, // opencl_global_device
34+
6, // opencl_global_host
35+
0, // cuda_device
36+
0, // cuda_constant
37+
0, // cuda_shared
38+
0, // ptr32_sptr
39+
0, // ptr32_uptr
40+
0 // ptr64
4141
};
4242

4343
static const unsigned SYCLAddrSpaceMap[] = {
44-
4, // Default
45-
1, // opencl_global
46-
3, // opencl_local
47-
2, // opencl_constant
48-
0, // opencl_private
49-
4, // opencl_generic
50-
11, // opencl_global_device
51-
12, // opencl_global_host
52-
0, // cuda_device
53-
0, // cuda_constant
54-
0, // cuda_shared
55-
0, // ptr32_sptr
56-
0, // ptr32_uptr
57-
0 // ptr64
44+
4, // Default
45+
1, // opencl_global
46+
3, // opencl_local
47+
2, // opencl_constant
48+
0, // opencl_private
49+
4, // opencl_generic
50+
5, // opencl_global_device
51+
6, // opencl_global_host
52+
0, // cuda_device
53+
0, // cuda_constant
54+
0, // cuda_shared
55+
0, // ptr32_sptr
56+
0, // ptr32_uptr
57+
0 // ptr64
5858
};
5959

6060
class LLVM_LIBRARY_VISIBILITY SPIRTargetInfo : public TargetInfo {

clang/lib/CodeGen/CodeGenModule.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1382,9 +1382,9 @@ static unsigned ArgInfoAddressSpace(LangAS AS) {
13821382
case LangAS::opencl_generic:
13831383
return 4; // Not in SPIR 2.0 specs.
13841384
case LangAS::opencl_global_device:
1385-
return 11;
1385+
return 5;
13861386
case LangAS::opencl_global_host:
1387-
return 12;
1387+
return 6;
13881388
default:
13891389
return 0; // Assume private.
13901390
}

clang/lib/Driver/ToolChains/Gnu.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,8 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
630630

631631
AddRunTimeLibs(ToolChain, D, CmdArgs, Args);
632632

633-
if (Args.hasArg(options::OPT_fsycl)) {
633+
if (Args.hasArg(options::OPT_fsycl) &&
634+
!Args.hasArg(options::OPT_nolibsycl)) {
634635
CmdArgs.push_back("-lsycl");
635636
// Use of -fintelfpga implies -lOpenCL.
636637
// FIXME: Adjust to use plugin interface when available.

clang/lib/Driver/ToolChains/MSVC.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,8 @@ void visualstudio::Linker::ConstructJob(Compilation &C, const JobAction &JA,
355355
!C.getDriver().IsCLMode())
356356
CmdArgs.push_back("-defaultlib:libcmt");
357357

358-
if (!Args.hasArg(options::OPT_nostdlib) && Args.hasArg(options::OPT_fsycl)) {
358+
if (!Args.hasArg(options::OPT_nostdlib) && Args.hasArg(options::OPT_fsycl) &&
359+
!Args.hasArg(options::OPT_nolibsycl)) {
359360
if (Args.hasArg(options::OPT__SLASH_MDd) ||
360361
Args.hasArg(options::OPT__SLASH_MTd))
361362
CmdArgs.push_back("-defaultlib:sycld.lib");

clang/test/CodeGenSYCL/address-space-parameter-conversions.cpp

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ void tmpl(T t){}
2323
void usages() {
2424
// CHECK-DAG: [[GLOB:%[a-zA-Z0-9]+]] = alloca i32 addrspace(1)*
2525
__attribute__((opencl_global)) int *GLOB;
26-
// CHECK-DAG: [[GLOBDEV:%[a-zA-Z0-9]+]] = alloca i32 addrspace(11)*
26+
// CHECK-DAG: [[GLOBDEV:%[a-zA-Z0-9]+]] = alloca i32 addrspace(5)*
2727
__attribute__((opencl_global_device)) int *GLOBDEV;
28-
// CHECK-DAG: [[GLOBHOST:%[a-zA-Z0-9]+]] = alloca i32 addrspace(12)*
28+
// CHECK-DAG: [[GLOBHOST:%[a-zA-Z0-9]+]] = alloca i32 addrspace(6)*
2929
__attribute__((opencl_global_host)) int *GLOBHOST;
3030
// CHECK-DAG: [[LOC:%[a-zA-Z0-9]+]] = alloca i32 addrspace(3)*
3131
__attribute__((opencl_local)) int *LOC;
@@ -44,29 +44,29 @@ void usages() {
4444
// CHECK-DAG: call spir_func void @[[RAW_REF2]](i32 addrspace(4)* align 4 dereferenceable(4) [[GLOB_CAST2]])
4545

4646
bar(*GLOBDEV);
47-
// CHECK-DAG: [[GLOBDEV_LOAD:%[a-zA-Z0-9]+]] = load i32 addrspace(11)*, i32 addrspace(11)** [[GLOBDEV]]
48-
// CHECK-DAG: [[GLOBDEV_CAST:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(11)* [[GLOBDEV_LOAD]] to i32 addrspace(4)*
47+
// CHECK-DAG: [[GLOBDEV_LOAD:%[a-zA-Z0-9]+]] = load i32 addrspace(5)*, i32 addrspace(5)** [[GLOBDEV]]
48+
// CHECK-DAG: [[GLOBDEV_CAST:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(5)* [[GLOBDEV_LOAD]] to i32 addrspace(4)*
4949
// CHECK-DAG: call spir_func void @[[RAW_REF]](i32 addrspace(4)* align 4 dereferenceable(4) [[GLOBDEV_CAST]])
5050
bar2(*GLOBDEV);
51-
// CHECK-DAG: [[GLOBDEV_LOAD2:%[a-zA-Z0-9]+]] = load i32 addrspace(11)*, i32 addrspace(11)** [[GLOBDEV]]
52-
// CHECK-DAG: [[GLOBDEV_CAST2:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(11)* [[GLOBDEV_LOAD2]] to i32 addrspace(4)*
51+
// CHECK-DAG: [[GLOBDEV_LOAD2:%[a-zA-Z0-9]+]] = load i32 addrspace(5)*, i32 addrspace(5)** [[GLOBDEV]]
52+
// CHECK-DAG: [[GLOBDEV_CAST2:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(5)* [[GLOBDEV_LOAD2]] to i32 addrspace(4)*
5353
// CHECK-DAG: call spir_func void @[[RAW_REF2]](i32 addrspace(4)* align 4 dereferenceable(4) [[GLOBDEV_CAST2]])
5454
bar3(*GLOBDEV);
55-
// CHECK-DAG: [[GLOBDEV_LOAD3:%[a-zA-Z0-9]+]] = load i32 addrspace(11)*, i32 addrspace(11)** [[GLOBDEV]]
56-
// CHECK-DAG: [[GLOBDEV_CAST3:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(11)* [[GLOBDEV_LOAD3]] to i32 addrspace(1)*
55+
// CHECK-DAG: [[GLOBDEV_LOAD3:%[a-zA-Z0-9]+]] = load i32 addrspace(5)*, i32 addrspace(5)** [[GLOBDEV]]
56+
// CHECK-DAG: [[GLOBDEV_CAST3:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(5)* [[GLOBDEV_LOAD3]] to i32 addrspace(1)*
5757
// CHECK-DAG: call spir_func void @[[GLOB_REF]](i32 addrspace(1)* align 4 dereferenceable(4) [[GLOBDEV_CAST3]])
5858

5959
bar(*GLOBHOST);
60-
// CHECK-DAG: [[GLOBHOST_LOAD:%[a-zA-Z0-9]+]] = load i32 addrspace(12)*, i32 addrspace(12)** [[GLOBHOST]]
61-
// CHECK-DAG: [[GLOBHOST_CAST:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(12)* [[GLOBHOST_LOAD]] to i32 addrspace(4)*
60+
// CHECK-DAG: [[GLOBHOST_LOAD:%[a-zA-Z0-9]+]] = load i32 addrspace(6)*, i32 addrspace(6)** [[GLOBHOST]]
61+
// CHECK-DAG: [[GLOBHOST_CAST:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(6)* [[GLOBHOST_LOAD]] to i32 addrspace(4)*
6262
// CHECK-DAG: call spir_func void @[[RAW_REF]](i32 addrspace(4)* align 4 dereferenceable(4) [[GLOBHOST_CAST]])
6363
bar2(*GLOBHOST);
64-
// CHECK-DAG: [[GLOBHOST_LOAD2:%[a-zA-Z0-9]+]] = load i32 addrspace(12)*, i32 addrspace(12)** [[GLOBHOST]]
65-
// CHECK-DAG: [[GLOBHOST_CAST2:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(12)* [[GLOBHOST_LOAD2]] to i32 addrspace(4)*
64+
// CHECK-DAG: [[GLOBHOST_LOAD2:%[a-zA-Z0-9]+]] = load i32 addrspace(6)*, i32 addrspace(6)** [[GLOBHOST]]
65+
// CHECK-DAG: [[GLOBHOST_CAST2:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(6)* [[GLOBHOST_LOAD2]] to i32 addrspace(4)*
6666
// CHECK-DAG: call spir_func void @[[RAW_REF2]](i32 addrspace(4)* align 4 dereferenceable(4) [[GLOBHOST_CAST2]])
6767
bar3(*GLOBHOST);
68-
// CHECK-DAG: [[GLOBHOST_LOAD3:%[a-zA-Z0-9]+]] = load i32 addrspace(12)*, i32 addrspace(12)** [[GLOBHOST]]
69-
// CHECK-DAG: [[GLOBHOST_CAST3:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(12)* [[GLOBHOST_LOAD3]] to i32 addrspace(1)*
68+
// CHECK-DAG: [[GLOBHOST_LOAD3:%[a-zA-Z0-9]+]] = load i32 addrspace(6)*, i32 addrspace(6)** [[GLOBHOST]]
69+
// CHECK-DAG: [[GLOBHOST_CAST3:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(6)* [[GLOBHOST_LOAD3]] to i32 addrspace(1)*
7070
// CHECK-DAG: call spir_func void @[[GLOB_REF]](i32 addrspace(1)* align 4 dereferenceable(4) [[GLOBHOST_CAST3]])
7171

7272
bar(*LOC);
@@ -93,28 +93,28 @@ void usages() {
9393
// CHECK-DAG: [[GLOB_CAST4:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(1)* [[GLOB_LOAD4]] to i32 addrspace(4)*
9494
// CHECK-DAG: call spir_func void @[[RAW_PTR2]](i32 addrspace(4)* [[GLOB_CAST4]])
9595
foo(GLOBDEV);
96-
// CHECK-DAG: [[GLOBDEV_LOAD4:%[a-zA-Z0-9]+]] = load i32 addrspace(11)*, i32 addrspace(11)** [[GLOBDEV]]
97-
// CHECK-DAG: [[GLOBDEV_CAST4:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(11)* [[GLOBDEV_LOAD4]] to i32 addrspace(4)*
96+
// CHECK-DAG: [[GLOBDEV_LOAD4:%[a-zA-Z0-9]+]] = load i32 addrspace(5)*, i32 addrspace(5)** [[GLOBDEV]]
97+
// CHECK-DAG: [[GLOBDEV_CAST4:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(5)* [[GLOBDEV_LOAD4]] to i32 addrspace(4)*
9898
// CHECK-DAG: call spir_func void @[[RAW_PTR]](i32 addrspace(4)* [[GLOBDEV_CAST4]])
9999
foo2(GLOBDEV);
100-
// CHECK-DAG: [[GLOBDEV_LOAD5:%[a-zA-Z0-9]+]] = load i32 addrspace(11)*, i32 addrspace(11)** [[GLOBDEV]]
101-
// CHECK-DAG: [[GLOBDEV_CAST5:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(11)* [[GLOBDEV_LOAD5]] to i32 addrspace(4)*
100+
// CHECK-DAG: [[GLOBDEV_LOAD5:%[a-zA-Z0-9]+]] = load i32 addrspace(5)*, i32 addrspace(5)** [[GLOBDEV]]
101+
// CHECK-DAG: [[GLOBDEV_CAST5:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(5)* [[GLOBDEV_LOAD5]] to i32 addrspace(4)*
102102
// CHECK-DAG: call spir_func void @[[RAW_PTR2]](i32 addrspace(4)* [[GLOBDEV_CAST5]])
103103
foo3(GLOBDEV);
104-
// CHECK-DAG: [[GLOBDEV_LOAD6:%[a-zA-Z0-9]+]] = load i32 addrspace(11)*, i32 addrspace(11)** [[GLOBDEV]]
105-
// CHECK-DAG: [[GLOBDEV_CAST6:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(11)* [[GLOBDEV_LOAD6]] to i32 addrspace(1)*
104+
// CHECK-DAG: [[GLOBDEV_LOAD6:%[a-zA-Z0-9]+]] = load i32 addrspace(5)*, i32 addrspace(5)** [[GLOBDEV]]
105+
// CHECK-DAG: [[GLOBDEV_CAST6:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(5)* [[GLOBDEV_LOAD6]] to i32 addrspace(1)*
106106
// CHECK-DAG: call spir_func void @[[GLOB_PTR]](i32 addrspace(1)* [[GLOBDEV_CAST6]])
107107
foo(GLOBHOST);
108-
// CHECK-DAG: [[GLOBHOST_LOAD4:%[a-zA-Z0-9]+]] = load i32 addrspace(12)*, i32 addrspace(12)** [[GLOBHOST]]
109-
// CHECK-DAG: [[GLOBHOST_CAST4:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(12)* [[GLOBHOST_LOAD4]] to i32 addrspace(4)*
108+
// CHECK-DAG: [[GLOBHOST_LOAD4:%[a-zA-Z0-9]+]] = load i32 addrspace(6)*, i32 addrspace(6)** [[GLOBHOST]]
109+
// CHECK-DAG: [[GLOBHOST_CAST4:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(6)* [[GLOBHOST_LOAD4]] to i32 addrspace(4)*
110110
// CHECK-DAG: call spir_func void @[[RAW_PTR]](i32 addrspace(4)* [[GLOBHOST_CAST4]])
111111
foo2(GLOBHOST);
112-
// CHECK-DAG: [[GLOBHOST_LOAD5:%[a-zA-Z0-9]+]] = load i32 addrspace(12)*, i32 addrspace(12)** [[GLOBHOST]]
113-
// CHECK-DAG: [[GLOBHOST_CAST5:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(12)* [[GLOBHOST_LOAD5]] to i32 addrspace(4)*
112+
// CHECK-DAG: [[GLOBHOST_LOAD5:%[a-zA-Z0-9]+]] = load i32 addrspace(6)*, i32 addrspace(6)** [[GLOBHOST]]
113+
// CHECK-DAG: [[GLOBHOST_CAST5:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(6)* [[GLOBHOST_LOAD5]] to i32 addrspace(4)*
114114
// CHECK-DAG: call spir_func void @[[RAW_PTR2]](i32 addrspace(4)* [[GLOBHOST_CAST5]])
115115
foo3(GLOBHOST);
116-
// CHECK-DAG: [[GLOBHOST_LOAD6:%[a-zA-Z0-9]+]] = load i32 addrspace(12)*, i32 addrspace(12)** [[GLOBHOST]]
117-
// CHECK-DAG: [[GLOBHOST_CAST6:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(12)* [[GLOBHOST_LOAD6]] to i32 addrspace(1)*
116+
// CHECK-DAG: [[GLOBHOST_LOAD6:%[a-zA-Z0-9]+]] = load i32 addrspace(6)*, i32 addrspace(6)** [[GLOBHOST]]
117+
// CHECK-DAG: [[GLOBHOST_CAST6:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(6)* [[GLOBHOST_LOAD6]] to i32 addrspace(1)*
118118
// CHECK-DAG: call spir_func void @[[GLOB_PTR]](i32 addrspace(1)* [[GLOBHOST_CAST6]])
119119
foo(LOC);
120120
// CHECK-DAG: [[LOC_LOAD3:%[a-zA-Z0-9]+]] = load i32 addrspace(3)*, i32 addrspace(3)** [[LOC]]
@@ -135,11 +135,11 @@ void usages() {
135135
// CHECK-DAG: [[GLOB_LOAD4:%[a-zA-Z0-9]+]] = load i32 addrspace(1)*, i32 addrspace(1)** [[GLOB]]
136136
// CHECK-DAG: call spir_func void [[GLOB_TMPL:@[a-zA-Z0-9_]+]](i32 addrspace(1)* [[GLOB_LOAD4]])
137137
tmpl(GLOBDEV);
138-
// CHECK-DAG: [[GLOBDEV_LOAD4:%[a-zA-Z0-9]+]] = load i32 addrspace(11)*, i32 addrspace(11)** [[GLOBDEV]]
139-
// CHECK-DAG: call spir_func void [[GLOBDEV_TMPL:@[a-zA-Z0-9_]+]](i32 addrspace(11)* [[GLOBDEV_LOAD4]])
138+
// CHECK-DAG: [[GLOBDEV_LOAD4:%[a-zA-Z0-9]+]] = load i32 addrspace(5)*, i32 addrspace(5)** [[GLOBDEV]]
139+
// CHECK-DAG: call spir_func void [[GLOBDEV_TMPL:@[a-zA-Z0-9_]+]](i32 addrspace(5)* [[GLOBDEV_LOAD4]])
140140
tmpl(GLOBHOST);
141-
// CHECK-DAG: [[GLOBHOST_LOAD4:%[a-zA-Z0-9]+]] = load i32 addrspace(12)*, i32 addrspace(12)** [[GLOBHOST]]
142-
// CHECK-DAG: call spir_func void [[GLOBHOST_TMPL:@[a-zA-Z0-9_]+]](i32 addrspace(12)* [[GLOBHOST_LOAD4]])
141+
// CHECK-DAG: [[GLOBHOST_LOAD4:%[a-zA-Z0-9]+]] = load i32 addrspace(6)*, i32 addrspace(6)** [[GLOBHOST]]
142+
// CHECK-DAG: call spir_func void [[GLOBHOST_TMPL:@[a-zA-Z0-9_]+]](i32 addrspace(6)* [[GLOBHOST_LOAD4]])
143143
tmpl(LOC);
144144
// CHECK-DAG: [[LOC_LOAD5:%[a-zA-Z0-9]+]] = load i32 addrspace(3)*, i32 addrspace(3)** [[LOC]]
145145
// CHECK-DAG: call spir_func void [[LOC_TMPL:@[a-zA-Z0-9_]+]](i32 addrspace(3)* [[LOC_LOAD5]])
@@ -152,8 +152,8 @@ void usages() {
152152
}
153153

154154
// CHECK-DAG: define linkonce_odr spir_func void [[GLOB_TMPL]](i32 addrspace(1)* %
155-
// CHECK-DAG: define linkonce_odr spir_func void [[GLOBDEV_TMPL]](i32 addrspace(11)* %
156-
// CHECK-DAG: define linkonce_odr spir_func void [[GLOBHOST_TMPL]](i32 addrspace(12)* %
155+
// CHECK-DAG: define linkonce_odr spir_func void [[GLOBDEV_TMPL]](i32 addrspace(5)* %
156+
// CHECK-DAG: define linkonce_odr spir_func void [[GLOBHOST_TMPL]](i32 addrspace(6)* %
157157
// CHECK-DAG: define linkonce_odr spir_func void [[LOC_TMPL]](i32 addrspace(3)* %
158158
// CHECK-DAG: define linkonce_odr spir_func void [[PRIV_TMPL]](i32* %
159159
// CHECK-DAG: define linkonce_odr spir_func void [[GEN_TMPL]](i32 addrspace(4)* %
@@ -164,9 +164,9 @@ void usages2() {
164164
__attribute__((opencl_global)) int *GLOB;
165165
// CHECK-DAG: [[GLOB:%[a-zA-Z0-9_]+]] = alloca i32 addrspace(1)*
166166
__attribute__((opencl_global_device)) int *GLOBDEV;
167-
// CHECK-DAG: [[GLOBDEV:%[a-zA-Z0-9_]+]] = alloca i32 addrspace(11)*
167+
// CHECK-DAG: [[GLOBDEV:%[a-zA-Z0-9_]+]] = alloca i32 addrspace(5)*
168168
__attribute__((opencl_global_host)) int *GLOBHOST;
169-
// CHECK-DAG: [[GLOBHOST:%[a-zA-Z0-9_]+]] = alloca i32 addrspace(12)*
169+
// CHECK-DAG: [[GLOBHOST:%[a-zA-Z0-9_]+]] = alloca i32 addrspace(6)*
170170
__attribute__((opencl_constant)) int *CONST;
171171
// CHECK-DAG: [[CONST:%[a-zA-Z0-9_]+]] = alloca i32 addrspace(2)*
172172
__attribute__((opencl_local)) int *LOCAL;
@@ -181,12 +181,12 @@ void usages2() {
181181
// CHECK-DAG: [[GLOB_CAST:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(1)* [[GLOB_LOAD]] to i32 addrspace(4)*
182182
// CHECK-DAG: call spir_func void @[[RAW_REF]](i32 addrspace(4)* align 4 dereferenceable(4) [[GLOB_CAST]])
183183
bar(*GLOBDEV);
184-
// CHECK-DAG: [[GLOBDEV_LOAD:%[a-zA-Z0-9]+]] = load i32 addrspace(11)*, i32 addrspace(11)** [[GLOBDEV]]
185-
// CHECK-DAG: [[GLOBDEV_CAST:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(11)* [[GLOBDEV_LOAD]] to i32 addrspace(4)*
184+
// CHECK-DAG: [[GLOBDEV_LOAD:%[a-zA-Z0-9]+]] = load i32 addrspace(5)*, i32 addrspace(5)** [[GLOBDEV]]
185+
// CHECK-DAG: [[GLOBDEV_CAST:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(5)* [[GLOBDEV_LOAD]] to i32 addrspace(4)*
186186
// CHECK-DAG: call spir_func void @[[RAW_REF]](i32 addrspace(4)* align 4 dereferenceable(4) [[GLOBDEV_CAST]])
187187
bar(*GLOBHOST);
188-
// CHECK-DAG: [[GLOBHOST_LOAD:%[a-zA-Z0-9]+]] = load i32 addrspace(12)*, i32 addrspace(12)** [[GLOBHOST]]
189-
// CHECK-DAG: [[GLOBHOST_CAST:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(12)* [[GLOBHOST_LOAD]] to i32 addrspace(4)*
188+
// CHECK-DAG: [[GLOBHOST_LOAD:%[a-zA-Z0-9]+]] = load i32 addrspace(6)*, i32 addrspace(6)** [[GLOBHOST]]
189+
// CHECK-DAG: [[GLOBHOST_CAST:%[a-zA-Z0-9]+]] = addrspacecast i32 addrspace(6)* [[GLOBHOST_LOAD]] to i32 addrspace(4)*
190190
// CHECK-DAG: call spir_func void @[[RAW_REF]](i32 addrspace(4)* align 4 dereferenceable(4) [[GLOBHOST_CAST]])
191191
bar2(*LOCAL);
192192
// CHECK-DAG: [[LOCAL_LOAD:%[a-zA-Z0-9]+]] = load i32 addrspace(3)*, i32 addrspace(3)** [[LOCAL]]

clang/test/Driver/sycl-offload.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,12 +570,23 @@
570570
// CHECK-LD-SYCL: "{{.*}}ld{{(.exe)?}}"
571571
// CHECK-LD-SYCL: "-lsycl"
572572

573+
/// Check no SYCL runtime is linked with -nolibsycl
574+
// RUN: %clang -fsycl -nolibsycl -target x86_64-unknown-linux-gnu %s -o %t -### 2>&1 | FileCheck -check-prefix=CHECK-LD-NOLIBSYCL %s
575+
// CHECK-LD-NOLIBSYCL: "{{.*}}ld{{(.exe)?}}"
576+
// CHECK-LD-NOLIBSYCL-NOT: "-lsycl"
577+
573578
/// Check for default linking of sycl.lib with -fsycl usage
574579
// RUN: %clang -fsycl -target x86_64-unknown-windows-msvc %s -o %t -### 2>&1 | FileCheck -check-prefix=CHECK-LINK-SYCL %s
575580
// RUN: %clang_cl -fsycl %s -o %t -### 2>&1 | FileCheck -check-prefix=CHECK-LINK-SYCL %s
576581
// CHECK-LINK-SYCL: "{{.*}}link{{(.exe)?}}"
577582
// CHECK-LINK-SYCL: "-defaultlib:sycl.lib"
578583

584+
/// Check no SYCL runtime is linked with -nolibsycl
585+
// RUN: %clang -fsycl -nolibsycl -target x86_64-unknown-windows-msvc %s -o %t -### 2>&1 | FileCheck -check-prefix=CHECK-LINK-NOLIBSYCL %s
586+
// RUN: %clang_cl -fsycl -nolibsycl %s -o %t -### 2>&1 | FileCheck -check-prefix=CHECK-LINK-NOLIBSYCL %s
587+
// CHECK-LINK-NOLIBSYCL: "{{.*}}link{{(.exe)?}}"
588+
// CHECK-LINK-NOLIBSYCL-NOT: "-defaultlib:sycl.lib"
589+
579590
/// Check sycld.lib is chosen with /MDd and /MTd
580591
// RUN: %clang_cl -fsycl /MDd %s -o %t -### 2>&1 | FileCheck -check-prefix=CHECK-LINK-SYCL-DEBUG %s
581592
// RUN: %clang_cl -fsycl /MTd %s -o %t -### 2>&1 | FileCheck -check-prefix=CHECK-LINK-SYCL-DEBUG %s

sycl/doc/GetStartedGuide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ To enable support for CUDA devices, follow the instructions for the Linux
123123
DPC++ toolchain, but add the `--cuda` flag to `configure.py`
124124

125125
Enabling this flag requires an installation of
126-
[CUDA 10.1](https://developer.nvidia.com/cuda-10.1-download-archive-update2) on
126+
[CUDA 10.2](https://developer.nvidia.com/cuda-10.2-download-archive) on
127127
the system, refer to
128128
[NVIDIA CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html).
129129

0 commit comments

Comments
 (0)