Skip to main content

Speculative Subword Register Allocation in Embedded Processors

  • Conference paper

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

Abstract

Multimedia and network processing applications make extensive use of subword data. Since registers are capable of holding a full data word, when a subword variable is assigned a register only part of the register is used. We propose an instruction set extension to the ARM embedded processor which allows two data items to reside in a register as long as each of them can be stored in 16 bits. The instructions are used by the register allocator to speculatively move the value of an otherwise spilled variable into a register which has already been assigned to another variable. The move is speculative because it only succeeds if the two values (value already present in the register and the value being moved into the register) can be simultaneously held in the register using 16 bits each. When this value is reloaded for further use, an attempt is first made to retrieve the value from its speculatively assigned register. If this attempt succeeds, load from memory is avoided. On an average our technique avoids 47% of dynamic reloads caused by spills.

Supported by Microsoft, Intel, and NSF grants CCR-0324969, CCR-0220334, CCR-0208756, CCR-0105355, and EIA-0080123 to the Univ. of Arizona.

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. Chaitin, G.J., Auslander, M.A., Chandra, A.K., Cocke, J., Hopkins, M.E., Markstein, P.W.: Register Allocation Via Coloring. Computer Languages 6(1), 47–57 (1981)

    Article  Google Scholar 

  2. Foster, C.E., Grossman, H.C.: An Empirical Investigation of the Haifa Register Allocation in the GNU C Compiler. IEEE Southeast Conference 2, 776–779 (1992)

    Google Scholar 

  3. Gupta, R., Mehofer, E., Zhang, Y.: A Representation for Bit Section based Analysis and Optimization. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 62–77. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  4. Lee, C., Potkonjak, M., Mangione-Smith, W.H.: Mediabench: A Tool for Evaluating and Synthesizing Multimedia and Communication Systems. In: IEEE/ACM International Symposium on Microarchitecture (MICRO) (December 1997)

    Google Scholar 

  5. Li, B., Gupta, R.: Simple Offset Assignment in Presence of Subword Data. In: International Conference on Compilers, Architecture, and Synthesis of Embedded Systems (CASES), San Jose, CA (October 2003)

    Google Scholar 

  6. Li, B., Gupta, R.: Bit Section Instruction Set Extension of ARM for Embedded Applications. In: International Conference on Compilers, Architecture, and Synthesis of Embedded Systems (CASES), Grenoble, France, October 2002, pp. 69–78 (2002)

    Google Scholar 

  7. Lin, J., Chen, T., Hsu, W.C., Yew, P.C.: Speculative Register Promotion Using Advanced Load Address Table (ALAT). In: International Symposium on Code Generation and Optimization, CGO (2003)

    Google Scholar 

  8. Nie, X., Gazsi, L., Engel, F., Fettweis, G.: A New Network Processor Architecture for High Speed Communications. In: IEEE Workshop on Signal Processing Systems (SiPS), pp. 548–557 (1999)

    Google Scholar 

  9. Stephenson, M., Babb, J., Amarasinghe, S.: Bitwidth Analysis with Application to Silicon Compilation. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 108–120 (2000)

    Google Scholar 

  10. Seal, D. (ed.): ARM Architectural Reference Manual, 2nd edn. Addison-Wesley, Reading

    Google Scholar 

  11. Tallam, S., Gupta, R.: Bitwidth Aware Global Register Allocation. In: 30th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), June 2003, pp. 85–96 (2003)

    Google Scholar 

  12. Wagner, J., Leupers, R.: C Compiler Design for an Industrial Network Processor. In: ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems (LCTES), June 2001, pp. 155–164 (2001)

    Google Scholar 

  13. Wolf, T., Franklin, M.: Commbench - A Telecommunications Benchmark for Network Processor. In: IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS) (April 2000)

    Google Scholar 

  14. Yang, J., Gupta, R.: Energy Efficient Frequent Value Data Cache Design. In: IEEE/ACM 35th International Symposium on Microarchitecture (MICRO), Istanbul, Turkey, November 2002, pp. 197–207 (2002)

    Google Scholar 

  15. Zhang, Y., Gupta, R.: Data Compression Transformations for Dynamically Allocated Data Structures. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 14–28. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  16. Zhang, Y., Gupta, R.: Enabling Partial Cache Line Prefetching Through Data Compression. In: International Conference on Parallel Processing (ICPP), Kaohsiung, Taiwan (October 2003)

    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

Li, B., Zhang, Y., Gupta, R. (2005). Speculative Subword Register Allocation in Embedded Processors. 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_6

Download citation

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

  • 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