Abstract
For predicated code a number of predicate analysis systems have been developed like PHG, PQA or PAS. In optimizing compilers for (fully) predicated architectures like the ItaniumĀ® 2 processor, the primary application for such systems is global register allocation. This paper classifies predicated live ranges into four types, develops strategies based on classical dataflow analysis to allocate register candidates for all classes efficiently, and shows that the simplest strategy can achieve the performance potential provided by a PQS-based implementation. The gain achieved in the IntelĀ® production compiler for the CINT2006 integer benchmarks is up to 37.6% and 4.48% in the geomean.
Chapter PDF
Similar content being viewed by others
References
Aho, V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, & Tools, 2nd edn. Addison Wesley, Reading (2007)
Allen, J.R., Kennedy, K., Porterfield, C., Warren, J.D.: Conversion of Control Dependence to Data Dependence. In: Proceedings of the 10th ACM Symposium on Principle of Programming Languages, POPL 1983, January 1983, pp. 177ā189 (1983)
Bharadwaj, J., Chen, W.J., Chuang, W., Hoflehner, G., Menezes, K., Muthukumar, K., Pierce, J.: The Intel IA-64 Compiler Code Generator. IEEE Micro, 44ā52 (September/October 2000)
Briggs, P., Cooper, K.D., Torczon, L.: Improvements to Graph Coloring Register Allocation. ACM Transactions on Programming Languages and SystemsĀ 16(3), 428ā455 (1994)
Chaitin, G.J., Auslander, M.A., Chandra, A.K., Cocke, J., Hopkins, M.E., Markstein, P.: Register allocation via coloring. Comp. Lang.Ā 6(1), 47ā57 (1981)
Chaitin, G.J.: Register Allocation and Spilling via Graph Coloring. In: Proceedings of the ACM SIGPLAN 1982 Symposium on Compiler Construction, pp. 98ā105 (1982)
Eichenberger, A., Davidson, E.S.: Register allocation for predicated code. In: Proceedings of the 28th Annual International Symposium on Microarchitecture, MICRO-28, December 1995, pp. 180ā191 (1995)
Gillies, D.M., Ju, R.D.-C., Johnson, R., Schlansker, M.S.: Global Predicate Analysis and its Application to Register Allocation. In: Proceedings of the 29th International Symposium on Microarchitecture, MICRO-29, December 1996, pp. 114ā125 (1996)
Huck, J., Morris, D., Ross, J., Knies, A., Mulder, H., Zahir, R.: Introducing the IA-64 Architecture. IEEE Micro, 12ā22 (September/October 2000)
Intel Corporation, IntelĀ® ItaniumĀ® Architecture Software Developerās Manual, Revision 2.2, vol. 1-3 (January 2006), http://developer.intel.com/design/itanium/manuals/iiasdmanual.htm
Intel Corporation, IntelĀ® ItaniumĀ® 2 Processor Reference Manual (May 2004), http://download.intel.com/design/Itanium2/manuals/25111003.pdf
Johnson, R., Schlansker, M.S.: Analysis techniques for predicated code. In: Proceedings of the 29th International Symposium on Microarchitecture, MICRO-29, December 1996, pp. 100ā113 (1996)
Mahlke, S.A., Lin, D.C., Chen, W.Y., Hank, R.E., Bringmann, R.A.: Effective compiler support for predicated execution using the hyperblock. In: Proceeding of the 25th Annual International Symposium on Microarchitecture MICRO-25, December 1992, pp. 45ā54 (1992)
McNairy, C., Soltis, D.: Itanium 2 Processor Microarchitecture. IEEE Micro, 44ā55 (March/April 2003)
Muchnick, S.: Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco (1997)
Park, J.C.H., Schlansker, M.S.: On predicated execution. Tech. Rep. HPL-91-58, HP Laboratories, Palo Alto, CA (May 1991)
Schlansker, M.S., Rau, B.R.: EPIC: Explicitly Parallel Instruction Computing. Computer, 37ā45 (February 2000)
Sias, J.S., Hwu, W.-M.W., August, D.I.: Accurate and Efficient Predicate Analysis with Binary Decision Diagrams. In: Proceedings of the 33rd International Symposium on Microarchitecture MICRO-33, December 2000, pp. 112ā123 (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hoflehner, G.F. (2010). Strategies for Predicate-Aware Register Allocation. In: Gupta, R. (eds) Compiler Construction. CC 2010. Lecture Notes in Computer Science, vol 6011. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11970-5_11
Download citation
DOI: https://doi.org/10.1007/978-3-642-11970-5_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-11969-9
Online ISBN: 978-3-642-11970-5
eBook Packages: Computer ScienceComputer Science (R0)