V. Loia et M. Quaggetto, OPTIMIZING PROCEDURE CALLS FOR DELAYED NONLOCAL EXECUTION PROTOCOL, Software, practice & experience, 26(12), 1996, pp. 1303-1334
This work originated from the challenge to strengthen a C-like languag
e compiler developed to support the compilation of sleepers, which are
tools which allow complete access to the run-time stack in a delayed
non-local execution protocol, Sleepers use a specialized form of proce
dure call, for which the gain in time execution and space memory alloc
ation becomes a crucial need, These two objectives have been attained
thanks to a methodology which generalizes the traditional distinction
between tail-calls and normal-calls, introducing the orthogonal distin
ction between calls in which the calling environment is needed after t
he call site and calls in which it is not, These two dichotomies divid
e the space of calls into four classes, The strategy described in this
paper is a simple and general framework which can be used to optimize
the cah-procedure statement in C compilers, The paper discusses optim
ization techniques appropriate to each class in turn, providing code d
etails for SPARC and ALPHA processors.