MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Compiler techniques for code compaction (2000) [65 citations — 11 self]

Download:
Download as a PDF | Download as a PS
by Saumya Debray, William Evans, Robert Muth, Bjorn De Sutter
ACM Transactions on Programming Languages and Systems
ftp://ftp.cs.arizona.edu/reports/2000/TR00-04.ps
Add To MetaCart

Abstract:

In recent years there has been an increasing trend towards the incorporation of computers into a variety of devices where the amount of memory available is limited. This makes it desirable to try to reduce the size of applications where possible. This paper explores the use of compiler techniques to accomplish code compaction to yield smaller executables. The main contribution of this paper is to show that careful, aggressive, interprocedural optimization, together with procedural abstraction of repeated code fragments, can yield signicantly better reductions in code size than previous approaches, which have generally focused on abstraction of repeated instruction sequences. We also show how \equivalent " code fragments can be detected and factored out using conventional compiler techniques, and without having to resort to purely linear treatments of code sequences as in sux-tree-based approaches, thereby setting up a framework for code compaction that can be more exible in its treatment of what code fragments are considered equivalent. Our ideas have been implemented in the form of a binary-rewriting tool that reduces the size of executables by about 30 % on the average.

Citations

7709 Computers and Intractability: A Guide to the Theory of NP-Completeness – Garey, Johnson - 1979
137 A Retargetable C Compiler: Design and Implementation – Hanson, Fraser - 1995
109 Optimal code motion: Theory and practice – Knoop, RĂ¼thing, et al. - 1994
105 Slim binaries – Franz, Kistler - 1997
77 Enhanced Code Compression for Embedded RISC Processors – Cooper, McIntosh - 1999
77 Optimizing an ANSI C interpreter with superoperators – Proebsting - 1995
75 Code compression – Ernst, Evans, et al. - 1997
54 Parameterized Pattern Matching: Algorithms and Applications – Baker - 1996
54 Analyzing and Compressing Assembly Code – Fraser, Myers, et al. - 1984
41 Profile-Guided Code Positioning – Pettis, Hansen - 1990
34 Deducing similarities in java sources from bytecodes – Baker, Manber - 1998
24 Alto: A Link-Time Optimizer for the DEC Alpha – Bosschere, Debray - 1996
23 Adaptive compression of syntax trees and iterative dynamic code optimization: Two basic technologies for mobile object systems – Franz - 1997
15 Compacting object code via parameterized procedural abstraction – Zastre - 1995
13 Custom instruction sets for code compression. Unpublished manuscript. http://research.microsoft.com/~toddpro/papers/ pldi2.ps – Fraser, Proebsting - 1995
6 A fast asynchronous human decoder for compressed-code embedded processors – Benes, Nowick, et al. - 1998
2 de Wiel. The `Code Compaction' Bibliography – van