Add unmasked { } statement.

This reestablishes an "all on" execution mask for the gang, which can
be useful for nested parallelism..
This commit is contained in:
Matt Pharr
2012-06-22 14:30:58 -07:00
parent b4a078e2f6
commit 54459255d4
10 changed files with 282 additions and 30 deletions

View File

@@ -214,7 +214,7 @@ struct ForeachDimension {
%type <stmt> statement labeled_statement compound_statement for_init_statement
%type <stmt> expression_statement selection_statement iteration_statement
%type <stmt> jump_statement statement_list declaration_statement print_statement
%type <stmt> assert_statement sync_statement delete_statement
%type <stmt> assert_statement sync_statement delete_statement unmasked_statement
%type <declaration> declaration parameter_declaration
%type <declarators> init_declarator_list
@@ -1570,6 +1570,7 @@ statement
| assert_statement
| sync_statement
| delete_statement
| unmasked_statement
| error ';'
{
lSuggestBuiltinAlternates();
@@ -1898,6 +1899,13 @@ delete_statement
}
;
unmasked_statement
: TOKEN_UNMASKED '{' statement_list '}'
{
$$ = new UnmaskedStmt($3, @1);
}
;
print_statement
: TOKEN_PRINT '(' string_constant ')' ';'
{