Tail Recursion Elimination

Program-Transformation.Org: The Program Transformation Wiki
Tail recursion elimination is a special case of tail call elimination in which the tail call is a call to the function itself. In that case the call can be replaced by a jump to the start of the function after moving the new arguments to the appropriate registers or stack locations.

This ProgramOptimization changes linear stack usage into constant stack usage and is especially important in the compilation of functional programming languages in which recursive functions are used instead of loops.

-- EelcoVisser - 06 Dec 2001