Abstract
Most modern digital signal processors (DSPs) provide multiple address registers and a dedicated address generation unit (AGU) which performs address generation in parallel to instruction execution. There is no address computation overhead if the next address is within the auto-modify range. A careful placement of variables in memory is utilized to decrease the number of address arithmetic instructions and thus to generate compact and efficient code. The simple offset assignment (SOA) problem concerns the layout of variables for machines with one address register and the general offset assignment (GOA) deals with multiple address registers. Both these problems assume that each variable needs to be allocated for the entire duration of a program. Both SOA and GOA are NP-complete. In this article, we present effective heuristics for the simple and the general offset assignment problems with variable coalescing where two or more non-interfering variables can be mapped into the same memory location. Results on several benchmarks show the significant improvement of our proposed heuristics compared to other heuristics in the literature.
- Atri, S., Ramanujam, J., and Kandemir, M. 2001. Improving offset assignment for embedded processors. Languages and Compilers for High-Performance Computing, S. Midkiff et al. Eds., Lecture Notes in Computer Science, vol. 3602, Springer-Verlag. Google Scholar
Digital Library
- Bartley, D. H. 1992. Optimizing stack frame accesses for processors with restricted addressing modes. Softw. Pract. Exper. 22, 2, 102--111. Google Scholar
Digital Library
- Chen, G., Kandemir, M., Irwin, M. J., and Ramanujam, J. 2006. Reducing code size through address register assignment. ACM Trans. Embed. Comput. Syst. 5, 1, 225--258. Google Scholar
Digital Library
- Gebotys, C. 1997. Dsp address optimization using a minimum cost circulation technique. In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design. Google Scholar
Digital Library
- Huynh, J., Amaral, J. N., Berube, P., and Touati, S. A. 2007. Evaluation of offset assignment heuristics. In Proceedings of the International Conference on High Performance Embedded Architectures and Compilers (HiPEAC). Google Scholar
Digital Library
- Lee, C., Potkonjak, M., and Mangione-Smith, W. 1997. Mediabench: A tool for evaluating and synthesizing multimedia and communications systems. In Proceedings of the IEEE International Symposium on Microarchitecture. 330--335. Google Scholar
Digital Library
- Leupers, R. 2000a. Code generation for embedded processors. In Proceedings of the 13th International System Synthesis Symposium (ISSS). Google Scholar
Digital Library
- Leupers, R. 2000b. Code Optimization Techniques for Embedded Processors. Kluwer Academic Publishers. Google Scholar
Digital Library
- Leupers, R. 2003. Offset assignment showdown: Evaluation of DSP address code optimization algorithms. In Proceedings of the 12th International Conference on Compiler Construction. Lecture Notes in Computer Science, vol. 2622, Springer. Google Scholar
Digital Library
- Leupers, R. and David, F. 1998. A uniform optimization technique for offset assignment problems. In Proceedings of the 11th International System Synthesis Symposium (ISSS). Google Scholar
Digital Library
- Leupers, R. and Marwedel, P. 1996. Algorithms for address assignment in DSP code generation. In Proceedings International Conference on Computer-Aided Design. Google Scholar
Digital Library
- Li, B. and Gupta, R. 2003. Simple offset assignment in presence of subword data. In Proceedings of the International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES’03). 12--23. Google Scholar
Digital Library
- Liao, S. 1996. Code generation and optimization for embedded digital signal processors. Ph.D. thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology. Google Scholar
Digital Library
- Liao, S., Devadas, S., Keutzer, K., and Tjiang, S.and Wang, A. 1995. Storage assignment to decrease code size. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. Google Scholar
Digital Library
- Muchnick, S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann. Google Scholar
Digital Library
- Offsetstone. http://www.address-code-optimization.org.Google Scholar
- Ottoni, D., Ottoni, G., Araujo, G., and Leupers, R. 2006. Offset assignment using simultaneous variable coalescing. ACM Trans. Embed. Comput. Syst. 5, 4. Google Scholar
Digital Library
- Ottoni, G., Rigo, S., Araujo, G., Rajagopalan, S., and Malik, S. 2001. Optimal live range merge for address register allocation in embedded programs. In Proceedings of the 10th International Conference on Compiler Construction (CC’01). Lecture Notes in Computer Science, vol. 2027, Springer, 274--288. Google Scholar
Digital Library
- Rao, A. and Pande, S. 1999. Storage assignment optimizations to generate compact and efficient code on embedded dsps. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 128--138. Google Scholar
Digital Library
- Sudarsanam, A., Liao, S., and Devadas, S. 1997. Analysis and evaluation of address arithmetic capabilities in custom DSP architectures. In Proceedings of the Design Automation Conference. 287--292. Google Scholar
Digital Library
- Sugino, N., Iimuro, S., Nishihara, A., and Jujii, N. 1996. Dsp code optimization utilizing memory addressing operation. IEICE Trans. Fund., 1217--1223.Google Scholar
- Udayanarayanan, S. and Chakrabarti, C. 2001. Address code generation for digital signal processors. In Proceedings of the 38th Design Automation Conference. Google Scholar
Digital Library
- Wess, B. and Gotschlich, M. 1997. Optimal dsp memory layout generation as a quadratic assignment problem. In Proceedings of the International Symposium on Circuits and Systems.Google Scholar
- Wess, B. and Zeitlhofer, T. 2004. Optimum address pointer assignment for digital signal processors. In Proceedings of the International Conference on Acoustics, Speech and Signal Processing.Google Scholar
- Zhuang, X., Lau, C., and Pande, S. 2003. Storage assignment optimizations through variable coalescence for embedded processors. In Proceedings of the ACM SIGPLAN Conference on Language, Compiler, and Tool Support for Embedded Systems. 220--231. Google Scholar
Digital Library
Index Terms
Storage Optimization through Offset Assignment with Variable Coalescing
Recommendations
An ILP solution to address code generation for embedded applications on digital signal processors
Special section on verification challenges in the concurrent worldDigital Signal Processors (DSPs) are a family of embedded processors designed under tight memory, area, and cost constraints. Many DSPs use irregular addressing modes where base-plus-offset mode is not supported. However, they often have Address ...
Offset assignment using simultaneous variable coalescing
The generation of efficient addressing code is a central problem in compiling for processors with restricted addressing modes, like digital signal processors (DSPs). Offset assignment (OA) is the problem of allocating scalar variables to memory, so as ...
An effective heuristic for simple offset assignment with variable coalescing
LCPC'06: Proceedings of the 19th international conference on Languages and compilers for parallel computingIn many Digital Signal Processors (DSPs) with limited memory, programs are loaded in the ROM and thus it is very important to optimize the size of the code to reduce the memory requirement. Many DSP processors include address generation units (AGUs) ...






Comments