class AM_ROUT_DEF <$AM
****
The definition of a function representing Sather routines and iters. An array of the argument local variables in order. The first is `self'.


Flattened version is here

Ancestors
$AM $PROG_ERR ARRAY{_} $ARR{_}
$RO_ARR{_} $CONTAINER{_} $ELT{_} $ELT
AREF{_} AM



Public


Readable Attributes
attr calls:FLIST{$AM_EXPR};
**** The calls that occur in the body of this routine or iter. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr code:$AM_STMT;
**** Code to execute when called. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr is_abstract:BOOL;
**** True for an abstract routine, in this case none of the below are defined. body of this routine or iter. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr is_attach_routine : BOOL;
**** ... of an attach
attr is_clean:BOOL;
**** True if known to not affect existing state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr is_external:BOOL;
**** True if this is an external routine with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr is_fork_routine : BOOL;
**** this routine implements the body of a fork
attr is_par_routine : BOOL;
**** this routine implements the body of a par
attr locals:FLIST{AM_LOCAL_EXPR};
**** The list of local variables. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr num_yields:INT;
**** The number of yields in the body. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr rres:AM_LOCAL_EXPR;
**** The result local variable if used. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr sig:SIG;
**** The signature of the routine. this case none of the below are defined. body of this routine or iter. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr specul_prefetch:AM_LOCAL_EXPR;
**** used if the function uses speculative prefetch only used in pSather
attr srcsig:SIG;
**** The signature of this routine or iter in the class it originally came from. Used to detect built-in ops. only used in pSather

Writable Attributes
attr calls:FLIST{$AM_EXPR};
**** The calls that occur in the body of this routine or iter. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr code:$AM_STMT;
**** Code to execute when called. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr is_abstract:BOOL;
**** True for an abstract routine, in this case none of the below are defined. body of this routine or iter. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr is_attach_routine : BOOL;
**** ... of an attach
attr is_clean:BOOL;
**** True if known to not affect existing state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr is_external:BOOL;
**** True if this is an external routine with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr is_fork_routine : BOOL;
**** this routine implements the body of a fork
attr is_par_routine : BOOL;
**** this routine implements the body of a par
attr locals:FLIST{AM_LOCAL_EXPR};
**** The list of local variables. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr num_yields:INT;
**** The number of yields in the body. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr rres:AM_LOCAL_EXPR;
**** The result local variable if used. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr sig:SIG;
**** The signature of the routine. this case none of the below are defined. body of this routine or iter. with a body, i.e. it is defined in Sather but callable from an external language. We don't generate an AM_ROUT_DEF for routines defined in the external language. state. in the class it originally came from. Used to detect built-in ops. only used in pSather
attr specul_prefetch:AM_LOCAL_EXPR;
**** used if the function uses speculative prefetch only used in pSather
attr srcsig:SIG;
**** The signature of this routine or iter in the class it originally came from. Used to detect built-in ops. only used in pSather

Features
arg_local(i:INT):AM_LOCAL_EXPR
**** The local variable for the `i'th argument. 0 is self, the rest follow in order.
calls_size:INT
create(nargs:INT, source:SFILE_ID):SAME
**** A new definition for a routine or iter with `nargs' arguments (including self).
export_call_pending: BOOL
export_done
export_locals_pending:BOOL
import_call_pending:BOOL
import_done
import_locals_pending:BOOL
is_iter:BOOL
**** True if an iter.
local_is_hot(l:AM_LOCAL_EXPR):BOOL
**** True if `l' is a hot argument to an iter.
name:IDENT
**** The Sather name.
needs_export_call
needs_export_locals
****
needs_export_locals:BOOL
needs_import_call
needs_import_locals
****
needs_import_locals:BOOL
number_of_args:INT
**** The number of arguments for this routine or iter (including self).
self_local:AM_LOCAL_EXPR
**** The local variable representing self.

Iters


Private

attr n_export_call : BOOL;
attr n_export_call : BOOL;
attr n_export_locals : BOOL;
attr n_export_locals : BOOL;
attr n_import_call : BOOL;
attr n_import_call : BOOL;
attr n_import_locals : BOOL;
attr n_import_locals : BOOL;