class INLINE < $INLINE


Ancestors
$INLINE CS_COMPONENT



Public


Readable Attributes
attr inline_iters:BOOL;
attr inline_routs:BOOL;
attr iter_thres:INT;
attr prog:PROG;
attr rout_thres:INT;

Writable Attributes
attr inline_iters:BOOL;
attr inline_routs:BOOL;
attr iter_thres:INT;
attr prog:PROG;
attr rout_thres:INT;

Constants
const default_iter_thres := 16;
**** found/guessed to be best on Sparcs
const default_rout_thres := 16;
**** default thresholds for inlining

Features
barf(msg:STR)
**** Something wrong within the compiler, but we can't say where.
barf_at(msg:STR,at:$PROG_ERR)
**** Something wrong, and we know where.
consider (am:AM_ROUT_DEF)
**** don't inline built in routines and iters!
create(p:PROG):SAME
err(s:STR)
**** Report an error.
err_loc(t:$PROG_ERR)
**** Set where a future error should be reported at.
general_inline(rout:AM_ROUT_DEF,lp:AM_LOOP_STMT,call:AM_ITER_CALL_EXPR):$AM_EXPR
general_inline(rout:AM_ROUT_DEF,call:AM_ROUT_CALL_EXPR):$AM_EXPR
init
**** Insert translator for folding integer addition
inlined(s:SIG):BOOL
special_inline(call:AM_ITER_CALL_EXPR):$AM_EXPR
special_inline(call:AM_ROUT_CALL_EXPR):$AM_EXPR
warning(s:STR)
**** report a warning (doesn't stop compile);


Private

attr itbl:INLINE_ITER_TBL;
attr itbl:INLINE_ITER_TBL;
attr rtbl:INLINE_ROUT_TBL;
attr rtbl:INLINE_ROUT_TBL;