Skip to main content

Instruction Selection for Compilers That Target Architectures with Echo Instructions

  • Conference paper
Software and Compilers for Embedded Systems (SCOPES 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3199))

Included in the following conference series:

Abstract

Echo Instructions have recently been introduced to allow embedded processors to provide runtime decompression of LZ77-compressed programs at a minimal hardware cost compared to other recent decompression schemes. As embedded architectures begin to adopt echo instructions, new compiler techniques will be required to perform the compression step. This paper describes a novel instruction selection algorithm that can be integrated into a retargetable compiler that targets such architectures. The algorithm uses pattern matching to identify repeated fragments of the compiler’s intermediate representation of a program. Identical program fragments are replaced with echo instructions, thereby compressing the program. The techniques presented here can easily be adapted to perform procedural abstraction, which replaces repeated program fragments with procedure calls rather than echo instructions.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Fraser, C.W.: An Instruction for Direct Interpretation of LZ77-compressed Programs. In: Microsoft Technical Report TR-2002-90 (2002)

    Google Scholar 

  2. Lau, J., Schoemackers, S., Sherwood, T., Calder, B.: Reducing Code Size With Echo Instructions. In: CASES (2003)

    Google Scholar 

  3. Ziv, J., Lempel, A.: A Universal Algorithm for Sequential Data Compression. IEEE Trans. on Information Theory 23(3), 337–343 (1977)

    Article  MATH  MathSciNet  Google Scholar 

  4. Fraser, C.W., Myers, E.W., Wendt, A.: Analyzing and Compressing Assembly Code. In: ACM Symposium on Compiler Construction (1984)

    Google Scholar 

  5. Debray, S., Evans, W., Muth, R., De Sutter, B.: Compiler Techniques for Code Compaction. ACM Trans. Programming Languages and Systems 22(2), 378–415 (2000)

    Article  Google Scholar 

  6. Cooper, K.D., McIntosh, N.: Enhanced Code Compression for Embedded RISC Processors. In: International Conference on Programming Language Design and Implementation (1999)

    Google Scholar 

  7. Runeson, J.: Code Compression Through Procedural Abstraction before Register Allocation. Masters Thesis, University of Uppsala (1992)

    Google Scholar 

  8. Lefurgy, C., Bird, P., Chen, I., Mudge, T.: Improving Code Density Using Compression Techniques. In: 30th International Symposium on Microarchitecture (1997)

    Google Scholar 

  9. Liao, S., Devadas, S., Keutzer, K.: A Text-compression-based Method for Code Size Minimization in Embedded Systems. ACM Trans. Design Automation of Embedded Systems 4(1), 12–38 (1999)

    Article  Google Scholar 

  10. Wolfe, A., Chanin, A.: Executing Compressed Programs on an Embedded RISC Architecture. In: 25th International Symposium on Microarchitecture (1992)

    Google Scholar 

  11. Kozuch, M., Wolfe, A.: Compression of Embedded System Programs. In: IEEE Int. Conf. Computer Design (1994)

    Google Scholar 

  12. Kemp, T.M., Montoye, R.K., Harper, J.D., Palmer, J.D., Auerbach, D.J.: A Decompression Core for PowerPC. IBM Journal of Research and Development 42(6), 807–812 (1998)

    Article  Google Scholar 

  13. Game, M., Booker, A.: CodePack: Code Compression for PowerPC Processors, Version 1.0. In: Technical Report, IBM Microelectronics Division

    Google Scholar 

  14. Lefurgy, C., Piccininni, E., Mudge, T.: Evaluation of a High Performance Data Compression Method. In: 32nd International Symposium on Microarchitecture (1999)

    Google Scholar 

  15. Garey, M.R., Johnson, D.S.: Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman and Co, New York (1979)

    MATH  Google Scholar 

  16. Cordella, L.P., Foggia, P., Sansone, C., Vento, M.: An Improved Algorithm for Matching Large Graphs. In: The 3rd IAPR-TC15 Workshop on Graph-based Representations (2001)

    Google Scholar 

  17. Kastner, R., Kaplan, A., Memik, S.O., Bozorgzadeh, E.: Instruction Generation for Hybrid Reconfigurable Systems. ACM Trans. Design Automation of Embedded Systems 7(4), 605–627 (2002)

    Article  Google Scholar 

  18. Kirovski, D., Potkonjak, M.: Efficient Coloring of a Large Spectrum of Graphs. In: Design Automation Conference (1997)

    Google Scholar 

  19. http://www.eecs.harvard.edu/hube/research/machsuif.html

  20. Kunchithapadam, K., Larus, J.R.: Using Lightweight Procedures to Improve Instruc- tion Cache Performance. In: University of Wisconsin-Madison Technical Report CS-TR-99-1390 (1999)

    Google Scholar 

  21. Briggs, P., Cooper, K.D., Torczon, L.: Improvements to Graph Coloring Register Allocation. ACM Trans. Programming Languages and Systems 16(3), 428–455 (1994)

    Article  Google Scholar 

  22. George, L., Appel, A.W.: Iterated Register Coalescing. ACM Trans. Programming Languages and Systems 18(3), 300–324 (1996)

    Article  Google Scholar 

  23. Park, J., Moon, S.M.: Optimistic Register Coalescing. In: International Conference on Parallel Architectures and Compilation Techniques (1998)

    Google Scholar 

  24. Lee, C., Potkonjak, M., Mangione-Smith, W.: MediaBench: A Tool for Evaluating and Synthesizing Multimedia and Communications Applications. In: 30th International Sympo- sium on Microarchitecture (1997)

    Google Scholar 

  25. Guthaus, M.R., Ringenberg, J.S., Ernst, D., Austin, T.M., Mudge, T., Brown, R.B.: MiBench: A free, commercially representative embedded benchmark suite. In: IEEE 4th Annual Workshop on Workload Characterization (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Brisk, P., Nahapetian, A., Sarrafzadeh, M. (2004). Instruction Selection for Compilers That Target Architectures with Echo Instructions. In: Schepers, H. (eds) Software and Compilers for Embedded Systems. SCOPES 2004. Lecture Notes in Computer Science, vol 3199. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30113-4_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-30113-4_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-23035-9

  • Online ISBN: 978-3-540-30113-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics