class CHANGE_VARS
****
The routine's parameters and local variables.


Flattened version is here



Public


Readable Attributes
attr init_parms,init_hot,init_nonhot:$AM_STMT;
attr init_parms,init_hot,init_nonhot:$AM_STMT;
attr init_parms,init_hot,init_nonhot:$AM_STMT;
attr init_vars:$AM_STMT;
**** Variables in the routine -> variables in the saved routine.
attr new_subst:FMAP{AM_LOCAL_EXPR,AM_LOCAL_EXPR};
attr new_vars:FLIST{AM_LOCAL_EXPR};
**** Variables in the saved routine -> variables in the new routine.
attr pind_hot,pind_nonhot:ARRAY{INT};
attr pind_hot,pind_nonhot:ARRAY{INT};
attr saved_subst:FMAP{AM_LOCAL_EXPR,AM_LOCAL_EXPR};
**** New routine's parameters and local variables.
attr saved_vars:FLIST{AM_LOCAL_EXPR};
**** Statements parm1:=void; on instantiation become parm1:=arg1. One list for routines, and two for iterators. Also, for iterators lists of indices of hot and non-hot parameters. Also, a list of initialization statements for variables that need them.

Features
after_one_use
after_saving
create (rout:AM_ROUT_DEF):SAME
new_copy (source:SFILE_ID)


Private

attr init_parms,init_hot,init_nonhot:$AM_STMT;
attr init_parms,init_hot,init_nonhot:$AM_STMT;
attr init_parms,init_hot,init_nonhot:$AM_STMT;
attr init_vars:$AM_STMT;
**** Variables in the routine -> variables in the saved routine.
attr new_subst:FMAP{AM_LOCAL_EXPR,AM_LOCAL_EXPR};
attr new_vars:FLIST{AM_LOCAL_EXPR};
**** Variables in the saved routine -> variables in the new routine.
attr pind_hot,pind_nonhot:ARRAY{INT};
attr pind_hot,pind_nonhot:ARRAY{INT};
attr saved_subst:FMAP{AM_LOCAL_EXPR,AM_LOCAL_EXPR};
**** New routine's parameters and local variables.
attr saved_vars:FLIST{AM_LOCAL_EXPR};
**** Statements parm1:=void; on instantiation become parm1:=arg1. One list for routines, and two for iterators. Also, for iterators lists of indices of hot and non-hot parameters. Also, a list of initialization statements for variables that need them.