skip to main content
research-article

Storage Optimization through Offset Assignment with Variable Coalescing

Published:01 June 2012Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bartley, D. H. 1992. Optimizing stack frame accesses for processors with restricted addressing modes. Softw. Pract. Exper. 22, 2, 102--111. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. Leupers, R. 2000a. Code generation for embedded processors. In Proceedings of the 13th International System Synthesis Symposium (ISSS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Leupers, R. 2000b. Code Optimization Techniques for Embedded Processors. Kluwer Academic Publishers. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. Leupers, R. and Marwedel, P. 1996. Algorithms for address assignment in DSP code generation. In Proceedings International Conference on Computer-Aided Design. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. Muchnick, S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Offsetstone. http://www.address-code-optimization.org.Google ScholarGoogle Scholar
  17. Ottoni, D., Ottoni, G., Araujo, G., and Leupers, R. 2006. Offset assignment using simultaneous variable coalescing. ACM Trans. Embed. Comput. Syst. 5, 4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. Sugino, N., Iimuro, S., Nishihara, A., and Jujii, N. 1996. Dsp code optimization utilizing memory addressing operation. IEICE Trans. Fund., 1217--1223.Google ScholarGoogle Scholar
  22. Udayanarayanan, S. and Chakrabarti, C. 2001. Address code generation for digital signal processors. In Proceedings of the 38th Design Automation Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle Scholar
  24. 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 ScholarGoogle Scholar
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Storage Optimization through Offset Assignment with Variable Coalescing

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Article Metrics

            • Downloads (Last 12 months)1
            • Downloads (Last 6 weeks)1

            Other Metrics

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!