From e1ea7ed2f9b8cfcf19258a05d270de4db03fec22 Mon Sep 17 00:00:00 2001 From: Dietrich Geisler Date: Wed, 12 Aug 2020 13:39:08 -0400 Subject: 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 --- source/slang/slang-lower-to-ir.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/slang/slang-lower-to-ir.cpp') diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp index a4542647a..9c4808f31 100644 --- a/source/slang/slang-lower-to-ir.cpp +++ b/source/slang/slang-lower-to-ir.cpp @@ -4114,6 +4114,12 @@ struct StmtLoweringVisitor : StmtVisitor insertBlock(breakLabel); } + void visitGpuForeachStmt(GpuForeachStmt* stmt) + { + startBlockIfNeeded(stmt); + return; + } + void visitExpressionStmt(ExpressionStmt* stmt) { startBlockIfNeeded(stmt); -- cgit v1.2.3