ACM Home Page
Please provide us with feedback. Feedback
Link-time binary rewriting techniques for program compaction
Full text PdfPdf (1.37 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 27 ,  Issue 5  (September 2005) table of contents
Pages: 882 - 945  
Year of Publication: 2005
ISSN:0164-0925
Authors
Bjorn De Sutter  Ghent University, Ghent, Belgium
Bruno De Bus  Ghent University, Ghent, Belgium
Koen De Bosschere  Ghent University, Ghent, Belgium
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 16,   Downloads (12 Months): 135,   Citation Count: 8
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1086642.1086645
What is a DOI?

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
 
2
3
 
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
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
16
17
18
19
 
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
22
23
24
25
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
 
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
44
 
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
50
51
52
53
 
54
 
55
 
56
57
58
59
60
61
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  8
 
 


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...

Collaborative Colleagues:
Bjorn De Sutter: colleagues
Bruno De Bus: colleagues
Koen De Bosschere: colleagues