Abstract
This paper explores new compilation methods, including Genetic Algorithms (GAs) and a new adaptation of Sethi-Ullman numbering, to aggressively restructure basic block code and allocate registers so that the number of registers used does not exceed the number available. Although the approach applies to a wide range of target architectures, it is investigated primarily for nanocontrollers, which have a combination of properties that make avoiding spills particularly difficult, but mandatory.
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
Aho, A.V., Johnson, S.C., Ullman, J.D.: Code generation for expressions with common subexpressions. J. ACM 24(1), 146–160 (1977)
Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers C35(8) (1986)
Chaitin, G.J.: Register allocation & spilling via graph coloring. In: Proceedings of the 1982 SIGPLAN Symposium on Compiler Construction (1982)
Chi, C.-H., Dietz, H.G.: Register allocation for gaas computer systems. In: IEEE Proceedings of the 21st Hawaii International Conference on Systems Sciences, Architecture Track, January 1988, vol. 1 (1988)
Cooper, K.D., Schielke, P.J., Subramanian, D.: Optimizing for reduced code space using genetic algorithms. In: LCTES 1999: Proceedings of the ACM SIGPLAN 1999 workshop on Languages, compilers, and tools for embedded systems, pp. 1–9. ACM Press, New York (1999)
Dietz, H.G., Fisher, R.J.: Compiling for SIMD within a register. In: Carter, L., Ferrante, J., Sehr, D., Chatterjee, S., Prins, J.F., Li, Z., Yew, P.-C. (eds.) LCPC 1998. LNCS, vol. 1656, p. 290. Springer, Heidelberg (1999)
Dietz, H.G., Arcot, S.D., Gorantla, S.: Much ado about almost nothing: Compilation for nanocontrollers. In: Rauchwerger, L. (ed.) LCPC 2003. LNCS, vol. 2958, pp. 466–480. Springer, Heidelberg (2004)
Filho, R., Lorena, G.: A constructive genetic algorithm for graph coloring (1997)
Horwitz, L.P., Karp, R.M., Miller, R.E., Winograd, S.: Index register allocation. Journal of the ACM (JACM) 13 ( January 1966), http://portal.acm.org/citation.cfm?doid=321
Guo, D.P.J., Garzaran, M.J.: The power of belady’s algorithm in register allocation for long basic blocks. In: Rauchwerger, L. (ed.) LCPC 2003. LNCS, vol. 2958. Springer, Heidelberg (2004), http://parasol.tamu.edu/lcpc03/informal-proceedings/Papers/35.pdf
Karplus, K.: Representing boolean functions with if-then-else dags. Technical Report UCSCCRL- 88-28, University of California at Santa Cruz (November 1988)
Koza, J.R.: Genetic Programming. MIT Press, Cambridge (1992)
Sethi, R., Ullman, J.D.: The generation of optimal code for arithmetic expressions. Journal of the ACM 17(4) (1970), http://doi.acm.org/10.1145/321607.321620
Whaley, R., Dongarra, J.: Automatically tuned linear algebra software. Technical Report UT CS-97-366, University of Tenessee (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Arcot, S.D., Dietz, H.G., Rajachidambaram, S.P. (2006). Manipulating MAXLIVE for Spill-Free Register Allocation. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2005. Lecture Notes in Computer Science, vol 4339. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69330-7_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-69330-7_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69329-1
Online ISBN: 978-3-540-69330-7
eBook Packages: Computer ScienceComputer Science (R0)