Abstract
Scalar replacement or register promotion uses scalar variables to save data that can be reused across loop iterations, leading to a reduction of the number of memory operations at the expense of a possibly large number of registers. In this paper we present a compiler data reuse analysis capable of uncovering and exploiting reuse opportunities for array references that exhibit Multiple-Induction-Variable (MIV) subscripts, beyond the reach of current data reuse analysis techniques. We present experimental results of the application of scalar replacement to a sample set of kernel codes targeting a programmable hardware computing device — a Field-Programmable-Gate-Array (FPGA). The results show that, for memory bound designs, scalar replacement alone leads to speedups that range between 2x to 6x at the expense of an increase in the FPGA design area in the range of 6x to 20x.
This work is supported by the National Science Foundation (NSF) under Grants 0209228 and 0204040. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the NSF.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
So, B., Hall, M.: Increasing the Applicability of Scalar Replacement. In: Duesterwald, E. (ed.) CC 2004. LNCS, vol. 2985, pp. 185–201. Springer, Heidelberg (2004)
Kandemir, M., Choudhary, A.: Compiler-Directed Scratch Pad Memory Hierarchy Design and Management. In: Proc. of the 2002 ACM/IEEE Design Automation Conference (DAC 2002). IEEE Computer Society Press, Los Alamitos (2002)
Bairagi, D., Pande, S., Agrawal, D.: Framework for Containing Code Size in Limited Register Set Embedded Processors. In: Proc. ACM Workshop on Languages, Compilers and Tools for Embedded Systems (LCTES 2000). ACM Press, New York (2000)
Pugh, W.: Counting Solutions to Presburger Formulas: How and Why. In: Proc. of the ACM Conf. on Prog. Language Design and Implementation, PLDI (1994)
Wolf, M., Lam, M.: A Data Locality Optimization Algorithm. In: Proc. of the ACM Conf. on Programming Language Design and Implementation, PLDI (1991)
Carr, S., Kennedy, K.: Improving the Ratio of Memory Operations to Floating-point Operations in Loops. ACM Trans. on Prog. Lang. and Syst. 16, 1768–1810 (1994)
Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers, San Francisco (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Baradaran, N., Diniz, P.C., Park, J. (2005). Extending the Applicability of Scalar Replacement to Multiple Induction Variables. 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_32
Download citation
DOI: https://doi.org/10.1007/11532378_32
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)