diff options
| author | Dietrich Geisler <dag368@cornell.edu> | 2020-08-12 13:39:08 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-12 10:39:08 -0700 |
| commit | e1ea7ed2f9b8cfcf19258a05d270de4db03fec22 (patch) | |
| tree | da87da6f4dd8adb39a44b0bfae342ed1dba04b58 /source/slang/slang-check-stmt.cpp | |
| parent | 12b0fc64103c63c33daaedf8a8c2ee05de35dcc5 (diff) | |
GPU Foreach Parsing and Checking (#1482)
This PR introduces parsing and semantic checking for a GPU foreach loop
for heterogeneouis programming. A GPU foreach loop takes the form:
```
__GPU_FOREACH(renderer, gridDims, LAMBDA(uint3 dispatchThreadID) {
kernelCall(args, ...); });
```
And will allow the host code to call into a kernel with the correct
renderer and grid dimensions. This commit also introduces a hack to
unify types in the heterogeneous hello world file, which will hopefully
be amended in the future.
Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
Diffstat (limited to 'source/slang/slang-check-stmt.cpp')
| -rw-r--r-- | source/slang/slang-check-stmt.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/slang/slang-check-stmt.cpp b/source/slang/slang-check-stmt.cpp index 2d01086f1..9a5aee15c 100644 --- a/source/slang/slang-check-stmt.cpp +++ b/source/slang/slang-check-stmt.cpp @@ -288,4 +288,13 @@ namespace Slang stmt->expression = CheckExpr(stmt->expression); } + void SemanticsStmtVisitor::visitGpuForeachStmt(GpuForeachStmt*stmt) + { + stmt->renderer = CheckExpr(stmt->renderer); + stmt->gridDims = CheckExpr(stmt->gridDims); + ensureDeclBase(stmt->dispatchThreadID, DeclCheckState::Checked); + WithOuterStmt subContext(this, stmt); + stmt->kernelCall = subContext.CheckExpr(stmt->kernelCall); + return; + } } |
