Compact code generation for embedded applications on digital signal processors

Digital Signal Processors (DSPs) are a family of embedded processors with tight constraints on memory, area, and cost. Many such systems have irregular addressing modes where base-plus-offset mode is not supported. However, they have address generation units (AGUs) that can perform auto-increment/decrement address arithmetic instructions in parallel with the same Load/Store instruction. This can be utilized to reduce the number of explicit address arithmetic instructions to minimize the code size. An effective technique for optimized code generation is offset assignment. This technique reduces the code size by finding an offset assignment that can maximally utilize auto-increment/decrement. In this paper, we present an optimal integer linear programming (ILP) solution to the offset assignment problem with variable coalescing and variable permutation. Experimental results on several benchmarks show the effectiveness of our techniques.

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

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

[3]  Chaitali Chakrabarti,et al.  Address code generation for digital signal processors , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[4]  Stan Y. Liao,et al.  Code generation and optimization for embedded digital signal processors , 1996 .

[5]  Rainer Leupers,et al.  Offset Assignment Showdown: Evaluation of DSP Address Code Optimization Algorithms , 2003, CC.

[6]  Amit Rao,et al.  Storage assignment optimizations to generate compact and efficient code on embedded DSPs , 1999, PLDI '99.

[7]  Miodrag Potkonjak,et al.  MediaBench: a tool for evaluating and synthesizing multimedia and communications systems , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

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

[9]  Rajiv Gupta,et al.  Simple offset assignment in presence of subword data , 2003, CASES '03.

[10]  José Nelson Amaral,et al.  Evaluation of Offset Assignment Heuristics , 2007, HiPEAC.

[11]  Srinivas Devadas,et al.  Analysis and Evaluation of Address Arithmetic Capabilities in Custom DSP Architectures , 1999, Des. Autom. Embed. Syst..

[12]  Rainer Leupers,et al.  Offset assignment using simultaneous variable coalescing , 2006, TECS.

[13]  Mahmut T. Kandemir,et al.  Reducing code size through address register assignment , 2006, TECS.

[14]  Heinrich Meyr,et al.  Code Generation and Optimization Techniques for Embedded Digital Signal Processors , 1996 .

[15]  Thomas Zeitlhofer,et al.  Optimum address pointer assignment for digital signal processors , 2004, 2004 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[16]  Santosh Pande,et al.  Storage assignment optimizations through variable coalescence for embedded processors , 2003 .