Abstract
Embedded computing platforms are often resource constrained, requiring great design and implementation attention to memory, power and heat related parameters. An important task for a compiler in such platforms is to simplify the process of developing applications for limited memory devices and resource constrained clients. Focusing on array-intensive embedded applications, this work explores how loop-based compiler optimizations can be used for increasing memory location reuse. Our goal is to transform a given application in such a way that the resulting code has fewer cases (as compared to the original code) where the lifetimes of array elements overlap. The reduction in lifetimes of array elements can then be exploited by reusing memory locations as much as possible. Our results indicate that the proposed strategy reduces data space requirements of ten resource constrained applications by more than 40% on the average.
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
N. Ahmed, N. Mateev, and K. Pingali. Synthesizing transformations for locality enhancement of imperfectly-nested loop nests. In Proc. International Conference on Supercomputing (ICS), May 2000.
S. P. Amarasinghe, J. M. Anderson, M. S. Lam, and C. W. Tseng. The SUIF compiler for scalable parallel machines. In Proc. 7 th SIAM Conference on Parallel Processing for Scientific Computing, February, 1995.
C. Ancourt and F. Irigoin. Scanning polyhedra with DO loops. In Proc. ACM Symp. on Principles of Prog. Lang. (POPL), June 1991.
D. Barthou, A. Cohen, and J-F. Collard. Maximal static expansion. In Proc. 25 th Annual ACM Symp. on Principles of Prog. Lang. (POPL), San Diego, CA, 1998.
P. Briggs. Register Allocation via Graph Coloring, PhD thesis, Rice University, Houston, TX, April 1992.
F. Catthoor, K. Danckaert, C. Kulkarni, E. Brockmeyer, P.G. Kjeldsberg, T. V. Achteren, and T. Omnes. Data Access and Storage Management for Embedded Programmable Processors, Kluwer Academic Publishers, 2002.
F. Catthoor et al. Custom Memory Management Methodology — Exploration of Memory Organization for Embedded Multimedia System Design. Kluwer Academic, 1998.
A. Fraboulet, K. Kodary, and A. Mignotte. Loop fusion for memory space optimization. In Proc. 14 th International Symposium on System Synthesis (ISSS), Montreal, Canada, September 30–October 3, 2001.
D. Gannon, W. Jalby, and K. Gallivan. Strategies for cache and local memory management by global program transformations. Journal of Parallel and Distributed Computing (JPDC), 5:587–616, 1988.
P. Grun, F. Balasa, and N. Dutt. Memory size estimation for multimedia applications. In Proc. CODES/CACHE, 1998.
P. Unnikrishnan, G. Chen, M. Kandemir, M. Karakoy, and I. Kolcu. Loop Transformations for Reducing Data Space Requirements of Resource-Constrained Applications. Technical Report of CSE Department, The Pennsylvania State University, 2002.
F. Irigoin and R. Triolet. Supernode partitioning. In Proc. 15 th Annual ACM Symp. on Principles of Programming Languages (POPL), pages 319–329, 1988.
M. Kandemir. A compiler technique for improving whole program locality. In Proc. 28 th Annual ACM Symposium on Principles of Programming Languages (POPL), London, UK, January, 2001.
K. Kennedy and K. S. McKinley. Maximizing loop parallelism and improving data locality via loop fusion and distribution. In Proc. Workshop on Languages and Compilers for Parallel Computing (LCPC), pp. 301–321, Oregon, Aug 1993.
K. Knobe and V. Sarkar. Array SSA form and its use in parallelization. In Proc. 15 th Annual ACM Symposium on Principles of Programming Languages (POPL), pages 107–120, 1998.
V. Lefebvre and P. Feautrier. Automatic storage management for parallel programs. Research report PRiSM 97/8, France, 1997.
W. Li. Compiling for NUMA Parallel Machines. Ph.D. Thesis, Computer Science Department, Cornell University, Ithaca, New York, 1993.
D. E. Maydan, S. P. Amarasinghe, and M. S. Lam. Array dataflow analysis and its use in array privatization. In Proc. Annual ACM Symposium on Principles of. Programming Languages (POPL), pages 2–15, January 1993.
K. McKinley, S. Carr, and C.-W. Tseng. Improving data locality with loop transformations. ACM Transactions on Programming Languages and Systems (TOPLAS), 18(4):424–453, July 1996.
MIPSpro Family of Compilers. http://www.sgi.com/developers/devtools/languages/mipspro.html.
W. Pugh and D. Wonnacott. An exact method for analysis of value-based array data dependences. In Proc. 6 th Workshop on Languages and Compilers for Parallel Computing (LCPC), Portland, Aug 1993.
Y. Song, R. Xu, C. Wang, and Z. Li. Data locality enhancement by memory reduction. In Proc. 15 th ACM International Conference on Supercomputing (ICS), June, 2001.
M. Strout, L. Carter, J. Ferrante, and B. Simon. Schedule-independent storage mapping in loops. In Proc. ACM Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), October, 1998.
W. Thies, F. Vivien, J. Sheldon, and S. Amarasinghe, A unified framework for schedule and storage optimization. In Proc. the SIGPLAN Conference on Programming Language Design and Implementation, Snowbird, UT, June, 2001.
P. Tu and D. Padua. Automatic array privatization. In Proc. 6 th Workshop on Languages and Compilers for Parallel Computing (LCPC), Lecture Notes in Computer Science, pages 500–521, Portland, OR, August 1993.
D. Wilde and S. Rajopadhye. Memory reuse analysis in the polyhedral model. Parallel Processing Letters, 1997.
M. Wolf and M. Lam. A data locality optimizing algorithm. In Proc. ACM SIGPLAN 91 Conference on Programming Language Design and Implementation (PLDI), pages 30–44, June 1991.
M. Wolfe. High Performance Compilers for Parallel Computing, Addison-Wesley Publishing Company, 1996.
Y. Zhao and S. Malik. Exact memory size estimation for array computations without loop unrolling. In Proc. ACM/IEEE Design Automation Conference (DAC), June 1999.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Unnikrishnan, P., Chen, G., Kandemir, M., Karakoy, M., Kolcu, I. (2003). Loop Transformations for Reducing Data Space Requirements of Resource-Constrained Applications. In: Cousot, R. (eds) Static Analysis. SAS 2003. Lecture Notes in Computer Science, vol 2694. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44898-5_22
Download citation
DOI: https://doi.org/10.1007/3-540-44898-5_22
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40325-8
Online ISBN: 978-3-540-44898-3
eBook Packages: Springer Book Archive