ACM Home Page
Please provide us with feedback. Feedback
Sifting out the mud: low level C++ code reuse
Full text PdfPdf (1.35 MB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Seattle, Washington, USA
SESSION: Scalability table of contents
Pages: 275 - 291  
Year of Publication: 2002
ISBN:1-58113-471-1
Also published in ...
Authors
Bjorn De Sutter  Ghent University, Belgium
Bruno De Bus  Ghent University, Belgium
Koen De Bosschere  Ghent University, Belgium
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 43,   Citation Count: 17
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/582419.582445
What is a DOI?

ABSTRACT

More and more computers are being incorporated in devices where the available amount of memory is limited. This contrasts with the increasing need for additional functionality and the need for rapid application development. While object-oriented programming languages, providing mechanisms such as inheritance and templates, allow fast development of complex applications, they have a detrimental effect on program size. This paper introduces new techniques to reuse the code of whole procedures at the binary level and a supporting technique for data reuse. These techniques benefit specifically from program properties originating from the use of templates and inheritance. Together with our previous work on code abstraction at lower levels of granularity, they achieve additional code size reductions of up to 38% on already highly optimized and compacted binaries, without sacrificing execution speed. We have incorporated these techniques in Squeeze++, a prototype link-time binary rewriter for the Alpha architecture, and extensively evaluate them on a suite of 8 real-life C++ applications. The total code size reductions achieved post link-time (i.e. without requiring any change to the compiler) range from 27 to 70%, averaging at around 43%.


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
B. S. Baker and U. Manber. Deducing similarities in Java sources from bytecodes. In USENIX Annual Technical Conference, pages 179--190, June 1998.
3
4
 
5
R. Cohn, D. Goodwin, P. Lowney, and N. Rubin. Spike: An optimizer for alpha/nt executables. In USENIX Windows NT Workshop, Aug. 1997.
6
7
8
9
10
 
11
Embedded C++ Technical Committee. The Embedded C++ Specification, Oct. 1999.
12
 
13
 
14
15
16
17
 
18
C. Fraser and T. Proebsting. Custom instruction sets for code compression. http://research.microsoft.com/ toddpro, 1995.
 
19
 
20
 
21
 
22
 
23
K. D. Kissell. MIPS16: High-density MIPS for the embedded market. In Proc. of Real Time Systems '97 (RTS97), 1997.
 
24
 
25
J. Levine. Linkers & Loaders. Morgan Kaufmann Publishers, 2000.
 
26
27
 
28
 
29
B. Schwarz, G. Andrews, M. Legendre, and S. Debray. PLTO: A link-time optimizer for the intel ia-32 architecture. In Proc. Workshop on Binary Translation (WBT), Sept. 2001.
30
31
32
33
34
 
35
TriMedia Technologies Inc. TriMedia32 Architecture, Oct. 2000.
 
36
J. Turley. Thumb squeezes ARM code size. Microprocessor Report, 9(4):1--5, Mar. 1995.
37
 
38
 
39
 
40

CITED BY  17

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