
266 CHAPTER 5 Program Design and Analysis
Metha et al. [Met97] present some additional observations about energy
optimization as follows:
■ Moderate loop unrolling eliminates some loop control overhead. However,
when the loop is unrolled too much, power increases due to the lower hit
rates of straight-line code.
■ Software pipelining reduces pipeline stalls, thereby reducing the average
energy per instruction.
■ Eliminating recursive procedure calls where possible saves power by getting
rid of function call overhead. Tail recursion can often be eliminated; some
compilers do this automatically.
5.9 ANALYSIS AND OPTIMIZATION OF PROGRAM SIZE
The memory footprint ...