class INLINE_ITER < $INLINE_ITER_SIG


Flattened version is here

Ancestors
$INLINE_ITER_SIG



Public


Readable Attributes
attr is_special:BOOL;
**** Mechanism for transforming local variables and parameters.

Writable Attributes
attr is_special:BOOL;
**** Mechanism for transforming local variables and parameters.

Readonly Shareds
shared inlined,iters:INT;
shared inlined,iters:INT;

Writable Shareds
shared inlined,iters:INT;
shared inlined,iters:INT;

Features
copy_iter (rout:AM_ROUT_DEF)
create (rout:AM_ROUT_DEF):SAME
inline (call:AM_ITER_CALL_EXPR):$AM_EXPR
is_inlineable (rout:AM_ROUT_DEF,threshold:INT, prog:PROG):BOOL
sig:SIG


Private

attr BEFLOOP_code:$AM_STMT;
**** Yield directly in the loop?
attr BEFLOOP_code:$AM_STMT;
**** Yield directly in the loop?
attr IINIT_code:$AM_STMT;
attr IINIT_code:$AM_STMT;
attr ITERM_code:$AM_STMT;
**** Non-flat yield: condition when to yield, code before yield, code after yield, the other branch of the if statement.
attr ITERM_code:$AM_STMT;
**** Non-flat yield: condition when to yield, code before yield, code after yield, the other branch of the if statement.
attr WYBEF_code,WYAFT_code,WNOY_code:$AM_STMT;
**** The value yielded.
attr WYBEF_code,WYAFT_code,WNOY_code:$AM_STMT;
**** The value yielded.
attr WYBEF_code,WYAFT_code,WNOY_code:$AM_STMT;
**** The value yielded.
attr WYBEF_code,WYAFT_code,WNOY_code:$AM_STMT;
**** The value yielded.
attr WYBEF_code,WYAFT_code,WNOY_code:$AM_STMT;
**** The value yielded.
attr WYBEF_code,WYAFT_code,WNOY_code:$AM_STMT;
**** The value yielded.
attr change_vars:CHANGE_VARS;
**** The code before the regular loop structure.
attr change_vars:CHANGE_VARS;
**** The code before the regular loop structure.
attr flat_yield:BOOL;
**** The code before flat yield (or if); after flat yield (or if). In other words, initialize or terminate the iteration.
attr flat_yield:BOOL;
**** The code before flat yield (or if); after flat yield (or if). In other words, initialize or terminate the iteration.
attr loop_firsts:FLIST{AM_LOCAL_EXPR};
attr loop_firsts:FLIST{AM_LOCAL_EXPR};
attr signature:SIG;
attr signature:SIG;
attr yield_cond:$AM_EXPR;
attr yield_cond:$AM_EXPR;
attr yield_val:$AM_EXPR;
**** Variables that used to be set to true before the loop. They have to be set to true before the new loop, too.
attr yield_val:$AM_EXPR;
**** Variables that used to be set to true before the loop. They have to be set to true before the new loop, too.