Optimized array index computation in DSP programs

An increasing number of components in embedded systems are implemented by software running on embedded processors. This trend creates a need for compilers for embedded processors capable of generating high quality machine code. Particularly for DSPs, such compilers are hardly available, and novel DSP-specific code optimization techniques are required. In this paper we focus on efficient address computation for array accesses in loops. Based on previous work, we present a new and optimal algorithm for address register allocation and provide an experimental evaluation of different algorithms. Furthermore, an efficient and close-to-optimum heuristic is proposed for large problems.

[1]  Ahmed Amine Jerraya,et al.  Address calculation for retargetable compilation and exploration of instruction-set architectures , 1996, DAC '96.

[2]  Kurt Keutzer,et al.  Storage assignment to decrease code size , 1996, TOPL.

[3]  Sharad Malik,et al.  Instruction set design and optimizations for address computation in DSP architectures , 1996, Proceedings of 9th International Symposium on Systems Synthesis.

[4]  James F. Gimpel,et al.  Covering Points of a Digraph with Point-Disjoint Paths and Its Application to Code Optimization , 1977, JACM.

[5]  Rainer Leupers,et al.  Algorithms for address assignment in DSP code generation , 1996, Proceedings of International Conference on Computer Aided Design.

[6]  D. H. Bartley,et al.  Optimizing stack frame accesses for processors with restricted addressing modes , 1992, Softw. Pract. Exp..

[7]  Rainer Leupers,et al.  Retargetable Code Generation for Digital Signal Processors , 1997, Springer US.

[8]  Rainer Leupers,et al.  Register-constrained address computation in DSP programs , 1998, Proceedings Design, Automation and Test in Europe.

[9]  Ken Kennedy,et al.  Optimal register assignment to loops for embedded code generation , 1995, Proceedings of the Eighth International Symposium on System Synthesis.

[10]  Bernhard Wess,et al.  Constructing memory layouts for address generation units supporting offset 2 access , 1997, 1997 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[11]  Clifford Liem,et al.  Trends In Embedded Systems Technology , 1996 .

[12]  Rainer Leupers,et al.  Algorithms for address assignment in DSP code generation , 1996, ICCAD 1996.