Download:
|
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
|