aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorgwenzek <gwenzek@users.noreply.github.com>2022-02-21 20:05:27 +0100
committerGitHub <noreply@github.com>2022-02-21 14:05:27 -0500
commit628e9e6d040979bd0a2cba05e854014dee5a7d55 (patch)
treeb2d86569b54d792808b608402cc9d1ea8ec7d161 /src/Sema.zig
parentd8da9a01fcfebf14a9f262cabf36f1c0767d2e2b (diff)
downloadzig-628e9e6d040979bd0a2cba05e854014dee5a7d55.tar.gz
zig-628e9e6d040979bd0a2cba05e854014dee5a7d55.zip
enable Gpu address spaces (#10884)
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 93cbb8f2cf..91cddc18ff 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -18006,10 +18006,14 @@ pub fn analyzeAddrspace(
const address_space = addrspace_tv.val.toEnum(std.builtin.AddressSpace);
const target = sema.mod.getTarget();
const arch = target.cpu.arch;
+ const is_gpu = arch == .nvptx or arch == .nvptx64;
const supported = switch (address_space) {
.generic => true,
.gs, .fs, .ss => (arch == .i386 or arch == .x86_64) and ctx == .pointer,
+ // TODO: check that .shared and .local are left uninitialized
+ .global, .param, .shared, .local => is_gpu,
+ .constant => is_gpu and (ctx == .constant),
};
if (!supported) {
@@ -18020,7 +18024,6 @@ pub fn analyzeAddrspace(
.constant => "constant values",
.pointer => "pointers",
};
-
return sema.fail(
block,
src,