|
ABSTRACT
Small program size is an important requirement for embedded systems with limited amounts of memory. We describe how link-time compaction through binary rewriting can achieve code size reductions of up to 62&percent; for statically bound languages such as C, C++, and Fortran, without compromising on performance. We demonstrate how the limited amount of information about a program at link time can be exploited to overcome overhead resulting from separate compilation. This is done with scalable, cost-effective, whole-program analyses, optimizations, and duplicate code and data elimination techniques. The discussed techniques are evaluated and their cost-effectiveness is quantified with Squeeze++, a prototype link-time compactor.
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
|
Ole Agesen , David Ungar, Sifting out the gold: delivering compact applications from an exploratory object-oriented programming environment, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, p.355-370, October 23-28, 1994, Portland, Oregon, United States
|
| |
2
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
 |
3
|
C. Scott Ananian , Martin Rinard, Data size optimizations for java programs, Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, June 11-13, 2003, San Diego, California, USA
|
| |
4
|
Anckaert, B., Vandeputte, F., De Bus, B., De Sutter, B., and De Bosschere, K. 2004. Link-time optimization of IA64 binaries. In Proceedings of the Euro-Par 2004 Conference. 284--291.
|
| |
5
|
Baker, B. and Manber, U. 1998. Deducing similarities in Java sources from bytecodes. In Proceedings of the USENIX Annual Technical Conference. Usenix, Berkeley, CA, 179--190.
|
 |
6
|
Vasanth Bala , Evelyn Duesterwald , Sanjeev Banerjia, Dynamo: a transparent dynamic optimization system, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.1-12, June 18-21, 2000, Vancouver, British Columbia, Canada
|
 |
7
|
|
 |
8
|
|
| |
9
|
Burger, D. and Austin, T. 1997. The simplescalar toolset, version 2.0. Tech. Rep. TR-97-1342, University of Wisconsin-Madison, Madison, WI.
|
| |
10
|
|
| |
11
|
Cheung, W., Evans, W., and Moses, J. 2003. Predicated instructions for code compaction. In Proceedings of the 7th International Workshop on Software and Compilers for Embedded Systems (SCOPES). Lecture Notes in Computer Science, vol. 2826. Springer, Berlin, Germany, 17--32.
|
 |
12
|
|
| |
13
|
Cohn, R., Goodwin, D., Lowney, P., and Rubin, N. 1997. Spike: An optimizer for Alpha/NT executables. In Proceedings of the USENIX Windows NT Workshop. 17--24.
|
 |
14
|
|
 |
15
|
Marc L. Corliss , E. Christopher Lewis , Amir Roth, A DISE implementation of dynamic code decompression, Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, June 11-13, 2003, San Diego, California, USA
|
 |
16
|
|
 |
17
|
Bruno De Bus , Bjorn De Sutter , Ludo Van Put , Dominique Chanet , Koen De Bosschere, Link-time optimization of ARM binaries, Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems, June 11-13, 2004, Washington, DC, USA
|
 |
18
|
Bjorn De Sutter , Bruno De Bus , Koen De Bosschere, Sifting out the mud: low level C++ code reuse, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
 |
19
|
Bjorn De Sutter , Bruno De Bus , Koen De Bosschere , Saumya Debray, Combining Global Code and Data Compaction, Proceedings of the ACM SIGPLAN workshop on Languages, compilers and tools for embedded systems, p.29-38, August 2001, Snow Bird, Utah, United States
|
| |
20
|
De Sutter, B., De Bus, B., De Bosschere, K., Keyngnaert, P., and Demoen, B. 2000. On the static analysis of indirect control transfers in binaries. In Proceedings of the 2000 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA). 1013--1019.
|
 |
21
|
Bjorn De Sutter , Hans Vandierendonck , Bruno De Bus , Koen De Bosschere, On the side-effects of code abstraction, Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, June 11-13, 2003, San Diego, California, USA
|
 |
22
|
|
 |
23
|
|
 |
24
|
Saumya Debray , Robert Muth , Matthew Weippert, Alias analysis of executable code, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.12-24, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268948]
|
 |
25
|
Jens Ernst , William Evans , Christopher W. Fraser , Todd A. Proebsting , Steven Lucco, Code compression, Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, p.358-365, June 16-18, 1997, Las Vegas, Nevada, United States
|
 |
26
|
|
| |
27
|
Ferdinand, C. 2001. Post pass code compaction at the assembly level for c16x. CONTACT, Infineon Technologies Development Tool Partners 3, 9, 35--36.
|
| |
28
|
Flower, R., Luk, C.-K., Muth, R., Patil, H., Shakshober, J., Cohn, R., and P. G., L. 2001. Kernel optimizations and prefetch with the spike executable optimizer. In Proceedings of the 4th Workshop on Feedback-Directed and Dynamic Optimization (“FDDO-4”).
|
| |
29
|
|
| |
30
|
|
 |
31
|
|
 |
32
|
|
 |
33
|
|
| |
34
|
|
 |
35
|
|
| |
36
|
|
| |
37
|
Darko Kirovski , Johnson Kin , William H. Mangione-Smith, Procedure based program compression, Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture, p.204-213, December 01-03, 1997, Research Triangle Park, North Carolina, United States
|
| |
38
|
Kissell, K. D. 1997. Mips16: High-density mips for the embedded market. In Proceedings of Real Time Systems (RTS'97).
|
| |
39
|
|
| |
40
|
|
 |
41
|
|
 |
42
|
|
 |
43
|
Jeremy Lau , Stefan Schoenmackers , Timothy Sherwood , Brad Calder, Reducing code size with echo instructions, 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.951724]
|
 |
44
|
Haris Lekatsas , Jörg Henkel , Srimat Chakradhar , Venkata Jakkula , Murugan Sankaradass, CoCo: a hardware/software platform for rapid prototyping of code compression technologies, Proceedings of the 40th conference on Design automation, June 02-06, 2003, Anaheim, CA, USA
[doi> 10.1145/775832.775912]
|
| |
45
|
Levine, J. 2000. Linkers & Loaders. Morgan Kaufmann, San Francisco, CA.
|
| |
46
|
Madou, M., De Sutter, B., De Bus, B., Van Put, L., and De Bosschere, K. 2004. Link-time optimization of MIPS programs. In Proceedings of the 2004 International Conference on Embedded Systems and Applications (ESA'04). 70--75.
|
| |
47
|
|
| |
48
|
|
 |
49
|
Krishna V. Palem , Rodric M. Rabbah , Vincent J. Mooney, III , Pinar Korkmaz , Kiran Puttaswamy, Design space optimization of embedded memory systems via data remapping, Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems, June 19-21, 2002, Berlin, Germany
|
 |
50
|
|
 |
51
|
|
 |
52
|
|
 |
53
|
|
| |
54
|
|
| |
55
|
|
| |
56
|
|
 |
57
|
|
 |
58
|
|
 |
59
|
|
 |
60
|
|
 |
61
|
Frank Tip , Jens Palsberg, Scalable propagation-based call graph construction algorithms, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.281-293, October 2000, Minneapolis, Minnesota, United States
|
 |
62
|
|
| |
63
|
TriMedia Technologies Inc. 2000. TriMedia32 Architecture. TriMedia Technologies Inc, Sunnyvale, CA.
|
| |
64
|
Turley, J. 1995. Thumb squeezes ARM code size. Microproc. Rep. 9, 4 (Mar.), 1--5.
|
 |
65
|
|
CITED BY 9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A. Dreweke , M. Worlein , I. Fischer , D. Schell , Th. Meinl , M. Philippsen, Graph-Based Procedural Abstraction, Proceedings of the International Symposium on Code Generation and Optimization, p.259-270, March 11-14, 2007
|
|
|
|
|
|
Stefan Valentin Gheorghita , Martin Palkovic , Juan Hamers , Arnout Vandecappelle , Stelios Mamagkakis , Twan Basten , Lieven Eeckhout , Henk Corporaal , Francky Catthoor , Frederik Vandeputte , Koen De Bosschere, System-scenario-based design of dynamic embedded systems, ACM Transactions on Design Automation of Electronic Systems (TODAES), v.14 n.1, p.1-45, January 2009
|
REVIEW
"Pierre Jouvelot : Reviewer"
Programmers of mobile and embedded systems highly value memory space. Typically, programmers look for tools that reduce the memory footprint of programs included in optimizing compilers that work at the source level. Squeeze++, presented here, pro
more...
|