Skip to main content

Exploiting Parallelism in Memory Operations for Code Optimization

  • Conference paper
  • 940 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3602))

Abstract

Code size reduction is ever becoming more important for compilers targeting embedded processors because these processors are often severely limited by storage constraints and thus the reduced code size can have a positively significant impact on their performance. Various code size reduction techniques have different motivations and a variety of application contexts utilizing special hardware features of their target processors. In this work, we propose a novel technique that fully utilizes a set of hardware instructions, called the multiple load/store (MLS) or parallel load/store (PLS), that are specially featured for reducing code size by minimizing the number of memory operations in the code. To take advantage of this feature, many microprocessors support the MLS instructions, whereas no existing compilers fully exploit the potential benefit of these instructions but only use them for some limited cases. This is mainly because optimizing memory accesses with MLS instructions for general cases is an NP-hard problem that necessitates complex assignments of registers and memory offsets for variables in a stack frame. Our technique uses a couple of heuristics to efficiently handle this problem in a polynomial time bound.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bartley, D.: Optimizing Stack Frame Accesses for Processors with Restricted Addressing Modes. Software Practice & Experience 22(2) (1992)

    Google Scholar 

  2. Lee, C., Potkonjak, M., Mangione-Smith, W.: MediaBench: A Tool for Evaluating and Synthesizing Multimedia and Communications Systems. In: Proceedings of the 30th Annaul IEEE/ACM Internation Symposium on Microarchitecture, November 1997, pp. 330–335 (1997)

    Google Scholar 

  3. Leupers, R., David, F.: A Uniform Optimization Technique for Offset Assignment Problems. In: International Symposium on Systems Synthesis, pp. 3–8 (1998)

    Google Scholar 

  4. Liao, S., Devadas, S., Keutzer, K., Tjiang, S.: Storage Assignment to Decrease Code Size. In: Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, pp. 186–195 (1995)

    Google Scholar 

  5. Nandivada, V., Palsberg, J.: Efficient Spill Code for SDRAM. In: International Conference on Compilers, Architectures and Synthesis for Embedded Systems (November 2003)

    Google Scholar 

  6. Paek, Y., Ahn, M., Lee, S.: Case Studies on Automatic Extraction of Target-specific Architectural Parameters in Complex Code Generation. In: Workshop on Software and Compilers for Embedded Systems (September 2003)

    Google Scholar 

  7. Rao, A., Pande, S.: Storage Assignment Optimizations to Generate Compact and Efficient Code on Embedded DSPs. In: Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, May 1999, pp. 128–138 (1999)

    Google Scholar 

  8. Zhuang, X., Lau, C., Pande, S.: Storage Assignment Optimizations through Variable Coalescence for Embedded Processors. In: Proceedings of the SIGPLAN Conference on Languages, Compilers and Tools for Embedded Systems, June 2003, pp. 220–231 (2003)

    Google Scholar 

  9. Zivojnovic, V., Velarde, J.M., Schager, C., Meyr, H.: DSPStone - A DSP oriented Benchmarking Methodology. In: Proceedings of International Conference on Signal Processing Applications and Technology (1994)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Paek, Y., Choi, J., Joung, J., Lee, J., Kim, S. (2005). Exploiting Parallelism in Memory Operations for Code Optimization. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds) Languages and Compilers for High Performance Computing. LCPC 2004. Lecture Notes in Computer Science, vol 3602. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11532378_11

Download citation

  • DOI: https://doi.org/10.1007/11532378_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-28009-5

  • Online ISBN: 978-3-540-31813-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics