Abstract
Many embedded processors have complex, irregular architectures resulting from the customization for the maximum performance and energy efficiency of target applications. One such example is the heterogeneous register architecture, which has fast, small-sized register files, for their specific uses, distributed over the data paths between different functional units. Although this architectural design may be good at achieving the H/W design goal of high speed, small area and low power, it requires highly expensive algorithms for optimal code generation. This is primarily because multiple registers contained in each file come with many different constraints subject to their design purposes, and often their names are aliased with each other; thus the final code quality is very sensitive to how properly such aliased, heterogeneous registers are utilized in every instruction. In this work, we propose a code generation approach to attack this complex problem. The experiments reveal that our approach is fast, practically running in polynomial time. In comparison with the related work, it achieves approximately 13% of code size reduction and 16% of speed increase.
An extension of [1] with more detailed description of our register allocation and coalescing algorithms with extended experimental results to show our effects on code generation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Ahn, M., Lee, J., Jung, S., Yoon, J.W., Paek, Y.: A Code Generation Approach for Heterogeneous Register Architectures. In: Proceedings of Workshop on the Interaction between Compilers and Computer Architecture (February 2007)
Ahn, M., Lee, J., Paek, Y.: Optimistic coalescing for heterogeneous register architectures. ACM SIGPLAN Notices 42(7), 93–102 (2007)
Araujo, G., Malik, S.: Code Generation for Fixed-Point DSPs. ACM Transactions on Design Automation of Electronic Systems (TODAES) 3(2), 136–161 (1998)
Bashford, S., Leupers, R.: Constraint driven code selection for fixed-point DSPs. In: Proceedings of Design Automation Conference, pp. 817–822 (1999)
Chaitin, G.: Register allocation and spilling via graph coloring. SIGPLAN Notices 17(6), 98–105 (1982)
Feuerhahn, H.: Data Flow Driven Resource Allocation in a Retargetable Microde Compiler. In: Proceedings of International Symposium on Microarchitecture, pp. 105–107 (1988)
George, L., Appel, A.: Iterated Register Coalescing. ACM Transactions on Programming Languages and Systems 18(3), 300–324 (1996)
Lorenz, M., Marwedel, P.: Phase Coupled Code Generation for DSPs Using a Genetic Algorithm. In: Proceedings of Conference on Design, Automation and Test in Europe, vol. 2, p. 21270 (2004)
Marwedel, P., Goossens, G. (eds.): Code Generation for Embedded Processors. Kluwer Academic Pub., Dordrecht (1995)
Park, J., Moon, S.-M.: Optimistic Register Coalescing. In: Proceedings of PACT (1998)
Coffman, E.G., Sethi, R.: Instruction Sets for Evaluating Arithmetic Expressions. Journal of the ACM 30(3) (1983)
Smith, M., Ramsey, N., Holloway, G.: A Generalized Algorithm for Graph-coloring register allocation. In: Proceedings of the ACM SIGPLAN conference on Programming language design and implementation PLDI, vol. 39(6) (2004)
Stallman, R.: Using and Porting GNU CC, Free Software Foundation (June 1993)
Wilson, T., Grewal, G., Halley, B., Banerji, D.: An Integerated Approach to Retargetable Code Generation. In: Proceedings of seventh International Symposium on High Level Synthesis, pp. 70–75 (1994)
Liem, C., May, T., Paulin, P.: Register Assignment through Resource Classification for ASIP Microcode Generation. In: Proceedings of the IEEE/ACM international conference on Computer-aided design (1994)
Paulin, P., Liem, m.C., May, T., Sutarwala, S.: DSP Design Tool Requirements for Embedded Systems: A Telecommunications Industrial Perspective. Journal of VLSI Signal Processing (1994)
Briggs, P., Cooper, K.D., Torczon, L.: Improvements to graph coloring register allocation. ACM TOPLAS 16(3), 428–455 (1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Ahn, M., Paek, Y. (2009). Fast Code Generation for Embedded Processors with Aliased Heterogeneous Registers. In: Stenström, P. (eds) Transactions on High-Performance Embedded Architectures and Compilers II. Lecture Notes in Computer Science, vol 5470. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-00904-4_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-00904-4_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-00903-7
Online ISBN: 978-3-642-00904-4
eBook Packages: Computer ScienceComputer Science (R0)