|
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 to be executed on single CPU-based architectures, 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 experimental results indicate that the proposed strategy reduces data space requirements of 15 resource constrained applications by more than 40%, on average. We also demonstrate how this strategy can be combined with data locality (cache behavior)--enhancing techniques so that a compiler can take advantage of both, that is, reduce data memory requirements and improve data locality at the same time.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Nawaaz Ahmed , Nikolay Mateev , Keshav Pingali, Synthesizing transformations for locality enhancement of imperfectly-nested loop nests, Proceedings of the 14th international conference on Supercomputing, p.141-152, May 08-11, 2000, Santa Fe, New Mexico, United States
[doi> 10.1145/335231.335245]
|
| |
2
|
Amarasinghe, S. P., Anderson, J. M., Lam, M. S., and Tseng, C. W. 1995. The SUIF compiler for scalable parallel machines. In Proceedings of the 7th SIAM Conference on Parallel Processing for Scientific Computing. Society for Industrial and Applied Mathematics, Philadelphia, PA.
|
 |
3
|
|
 |
4
|
Denis Barthou , Albert Cohen , Jean-François Collard, Maximal static expansion, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.98-106, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268955]
|
| |
5
|
|
| |
6
|
Catthoor, F., Danckaert, K., Kulkarni, C., Brockmeyer, E., Kjeldsberg, P. G., Achteren, T. V., and Omnes, T. 2002. Data Access and Storage Management for Embedded Programmable Processors. Kluwer Academic Publishers, Berlin, Germany.
|
| |
7
|
|
 |
8
|
Alain Darte , Rob Schreiber , Gilles Villard, Lattice-based memory allocation, Proceedings of the 2003 international conference on Compilers, architecture and synthesis for embedded systems, October 30-November 01, 2003, San Jose, California, USA
[doi> 10.1145/951710.951749]
|
 |
9
|
|
| |
10
|
|
| |
11
|
|
| |
12
|
Peter Grun , Florin Balasa , Nikil Dutt, Memory size estimation for multimedia applications, Proceedings of the 6th international workshop on Hardware/software codesign, p.145-149, March 15-18, 1998, Seattle, Washington, United States
|
 |
13
|
Mary H. Hall , Saman P. Amarasinghe , Brian R. Murphy , Shih-Wei Liao , Monica S. Lam, Detecting coarse-grain parallelism using an interprocedural parallelizing compiler, Proceedings of the 1995 ACM/IEEE conference on Supercomputing (CDROM), p.49-es, December 04-08, 1995, San Diego, California, United States
[doi> 10.1145/224170.224337]
|
 |
14
|
|
 |
15
|
|
| |
16
|
|
 |
17
|
|
| |
18
|
Kolcu, I. Personal communication.
|
| |
19
|
Lefebvre V. and Feautrier, P. 1997. Automatic storage management for parallel programs. Res. rep. PRiSM 97/8, France.
|
| |
20
|
|
 |
21
|
|
 |
22
|
|
 |
23
|
|
| |
24
|
MediaBench. http://cares.icsl.ucla.edu/MediaBench/.
|
| |
25
|
MiBench. http://www.eecs.umich.edu/mibench/.
|
| |
26
|
MIPSpro Family of Compilers. http://www.sgi.com/developers/devtools/languages/mipspro.html.
|
| |
27
|
|
 |
28
|
|
 |
29
|
Michelle Mills Strout , Larry Carter , Jeanne Ferrante , Beth Simon, Schedule-independent storage mapping for loops, Proceedings of the eighth international conference on Architectural support for programming languages and operating systems, p.24-33, October 02-07, 1998, San Jose, California, United States
|
 |
30
|
William Thies , Frédéric Vivien , Jeffrey Sheldon , Saman Amarasinghe, A unified framework for schedule and storage optimization, Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, p.232-242, June 2001, Snowbird, Utah, United States
|
| |
31
|
|
| |
32
|
Unnikrishnan, P., Chen, G., Kandemir, M., Karakoy, M., and Kolcu, I. 2003. Loop transformations for reducing data space requirements of resource-constrained applications. In Proceedings of the 10th Annual International Static Analysis Symposium.
|
| |
33
|
Verdoolaege, S., Beyls, K., Bruynooghe, M., and Catthoor, F. 2005. Experiences with enumeration of integer projections of parametric polytops. In Proceedings of the 14th International Conference on Compiler Construction. Springer, Berlin, Germany, 91--105.
|
 |
34
|
Sven Verdoolaege , Rachid Seghir , Kristof Beyls , Vincent Loechner , Maurice Bruynooghe, Analytical computation of Ehrhart polynomials: enabling more compiler analyses and optimizations, Proceedings of the 2004 international conference on Compilers, architecture, and synthesis for embedded systems, September 22-25, 2004, Washington DC, USA
[doi> 10.1145/1023833.1023868]
|
| |
35
|
|
 |
36
|
|
| |
37
|
|
 |
38
|
|
| |
39
|
Zervas, N. D., Masselos, K., and Goutis, C. 1998. Code transformations for embedded multimedia applications: impact on power and performance. In Proceedings of the ISCA Power-Driven Microarchitecture Workshop. ACM, New York.
|
|