Global Array Reference Allocation [abstract] (ACM DL, PDF, PostScript)
Guido Araujo, Guilherme Ottoni, and Marcelo Cintra
ACM Transactions on Design Automation of Electronic Systems (TODAES), Volume 7, Number 2, April 2002.
Embedded systems executing specialized programs have been increasingly
responsible for a large share of the computer systems manufactured
every year. This trend has increased the demand for processors that
can guarantee high-performance under stringent cost, power and code
size constraints. Indirect addressing is by far the most used
addressing mode in programs running on these systems, since it enables
the design of small and faster instructions. This paper proposes a
solution to the problem of allocating registers to array references
using auto-increment addressing modes. It extends previous work in the
area, by enabling efficient allocation in the presence of control-flow
statements. The solution is based on an algorithm that merges address
registers live ranges pairwise. An optimizing DSP compiler, from
Mindspeed Technologies Inc. is used to validate this idea.
Experimental results reveal a substantial improvement in code
performance, when comparing to a combination of local auto-increment
detection and priority-based register coloring.