Add foreach_active iteration statement.

Issue #298.
This commit is contained in:
Matt Pharr
2012-06-22 10:35:43 -07:00
parent ed13dd066b
commit b4a078e2f6
15 changed files with 644 additions and 279 deletions

17
stmt.h
View File

@@ -260,6 +260,23 @@ public:
};
/** Iteration over each executing program instance.
*/
class ForeachActiveStmt : public Stmt {
public:
ForeachActiveStmt(Symbol *iterSym, Stmt *stmts, SourcePos pos);
void EmitCode(FunctionEmitContext *ctx) const;
void Print(int indent) const;
Stmt *TypeCheck();
int EstimateCost() const;
Symbol *sym;
Stmt *stmts;
};
/** Parallel iteration over each unique value in the given (varying)
expression.
*/