Title :
High performance code generation through lazy activation records
Author :
Satpathy, M. ; Mahapatrg, R.N. ; Choudhuri, S. ; Chitnis, S.V.
Author_Institution :
Dept. of Comput. Sci., Reading Univ., UK
Abstract :
For call intensive programs, function calls are major bottlenecks during program execution since they usually force register contents to be spilled into memory. Such register to memory spills are much more pronounced in presence of recursion. A function call is usually accompanied by the creation of its activation record at function entry. In this paper, we will deviate from this usual practice; we create an activation record only when we find it necessary. The result is that on many occasions we can execute a function call without actually creating its activation record. We call our strategy lazy activation record strategy (LARS) and show how this strategy is particularly important for call-intensive programs. The LARS subsumes many traditional techniques like leaf-call optimization and tail-recursion optimization, and in addition, it extends Chow´s shrink-wrapping in terms of scope and granularity. We also demonstrate how the LARS can be an effective optimization strategy in the case of battery operated embedded systems, since not only can it reduce execution time but also energy consumption.
Keywords :
embedded systems; optimising compilers; program control structures; software performance evaluation; LARS; battery operated embedded systems; bottlenecks; call intensive programs; energy consumption; execution time; function calls; high performance code generation; lazy activation record strategy; recursion; register to memory spills; Batteries; Computer science; Embedded computing; Embedded system; Energy consumption; Hardware; Registers; Runtime environment; Software engineering; Sorting;
Conference_Titel :
Interaction Between Compilers and Computer Architectures, 2003. INTERACT-7 2003. Proceedings. Seventh Workshop on
Print_ISBN :
0-7695-1889-3
DOI :
10.1109/INTERA.2003.1192354