class AM_LOOP_STMT < $AM_STMT
****
Loop statement.


Flattened version is here

Ancestors
$AM_STMT $NEXT{_} $AM $PROG_ERR
AM_STMT AM



Public


Readable Attributes
attr ar_max_expr:FLIST{STR};
**** list of exprs used to test if ar_local has reached the maximum value. Used by the optimizer moved to the end of the loop. used to avoid recursion if the loop consists of only while!/until! statements
attr bits:FLIST{AM_BND_ITER_CALL_EXPR};
**** A list of the enclosed bound iter calls which must be initialized when the loop is entered.
attr body:$AM_STMT;
**** The body of the loop. the loop. used by the optimizer.
attr breaks:INT;
**** number of breaks used in the loop yields inside locks does not need "BEGIN_LOOP"
attr first_while_moved:$AM;
**** the first while!/until! statement that has been moved to the end of the loop. used to avoid recursion if the loop consists of only while!/until! statements
attr firsts:FLIST{AM_LOCAL_EXPR};
**** Ivin. A list of local Boolean variables corresponding to inlined iterators, which must be initialized to true when the loop is entered.
attr has_init_stmt:BOOL;
**** true if the C code has an initial '{' loop body (or a nested loop body). the loop. used by the optimizer.
attr has_yield:BOOL;
**** True if there is a "yield" in the loop body (or a nested loop body). the loop. used by the optimizer.
attr hoisted:FLIST{EXPR_HOISTED};
**** list of expressions hoisted, used by the optimizer
attr init:$AM_STMT;
**** statements to execute before entering the loop. used by the optimizer.
attr its:FLIST{AM_ITER_CALL_EXPR};
**** A list of the enclosed iters which must be initialized when the loop is entered. iter calls which must be initialized when the loop is entered.
attr loop_index:STR;
**** local_expr of the array index variable, used by the optimizer.
attr loop_index_var:AM_LOCAL_EXPR;
**** local expression used for the loop index used by the optimizer.
attr no_begin_loop:BOOL;
**** only for pSather: a loop that uses no iters with yields inside locks does not need "BEGIN_LOOP"

Writable Attributes
attr ar_max_expr:FLIST{STR};
**** list of exprs used to test if ar_local has reached the maximum value. Used by the optimizer moved to the end of the loop. used to avoid recursion if the loop consists of only while!/until! statements
attr bits:FLIST{AM_BND_ITER_CALL_EXPR};
**** A list of the enclosed bound iter calls which must be initialized when the loop is entered.
attr body:$AM_STMT;
**** The body of the loop. the loop. used by the optimizer.
attr breaks:INT;
**** number of breaks used in the loop yields inside locks does not need "BEGIN_LOOP"
attr first_while_moved:$AM;
**** the first while!/until! statement that has been moved to the end of the loop. used to avoid recursion if the loop consists of only while!/until! statements
attr firsts:FLIST{AM_LOCAL_EXPR};
**** Ivin. A list of local Boolean variables corresponding to inlined iterators, which must be initialized to true when the loop is entered.
attr has_init_stmt:BOOL;
**** true if the C code has an initial '{' loop body (or a nested loop body). the loop. used by the optimizer.
attr has_yield:BOOL;
**** True if there is a "yield" in the loop body (or a nested loop body). the loop. used by the optimizer.
attr hoisted:FLIST{EXPR_HOISTED};
**** list of expressions hoisted, used by the optimizer
attr init:$AM_STMT;
**** statements to execute before entering the loop. used by the optimizer.
attr its:FLIST{AM_ITER_CALL_EXPR};
**** A list of the enclosed iters which must be initialized when the loop is entered. iter calls which must be initialized when the loop is entered.
attr loop_index:STR;
**** local_expr of the array index variable, used by the optimizer.
attr loop_index_var:AM_LOCAL_EXPR;
**** local expression used for the loop index used by the optimizer.
attr no_begin_loop:BOOL;
**** only for pSather: a loop that uses no iters with yields inside locks does not need "BEGIN_LOOP"

Features
copy:$AM_STMT
uses_loop_index:BOOL