Results 1 -
3 of
3
Enhanced Code Compression for Embedded RISC Processors
, 1999
"... This paper explores compiler techniques for reducing the memory needed to load and run program executables. In embedded systems, where economic incentives to reduce both ram and rom are strong, the size of compiled code is increasingly important. Similarly, in mobile and network computing, the need ..."
Abstract
-
Cited by 89 (2 self)
- Add to MetaCart
This paper explores compiler techniques for reducing the memory needed to load and run program executables. In embedded systems, where economic incentives to reduce both ram and rom are strong, the size of compiled code is increasingly important. Similarly, in mobile and network computing, the need to transmit an executable before running it places a premium on code size. Our work focuses on reducing the size of a program's code segment, using pattern-matching techniques to identify and coalesce together repeated instruction sequences. In contrast to other methods, our framework preserves the ability to run program executables directly, without an intervening decompression stage. Our compression framework is integrated into an industrial-strength optimizing compiler, which allows us to explore the interaction between code compression and classical code optimization techniques, and requires that we contend with the difficulties of compressing previously optimized code. The specific contributions in this paper include a comprehensive experimental evaluation of code compression for a Risc-like architecture, a more powerful pattern-matching scheme for improved identification of repeated code fragments, and a new form of profile-driven code compression that reduces the speed penalty arising from compression.
A Space Optimization Using Inexact Instruction Matches
"... In this paper we examine parameterized procedural abstraction. This is an extension of an optimization whose sole purpose is to reduce code size. Previously published implementations of procedural abstraction have produced space savings if the instruction sequences are exact matches. We show that pe ..."
Abstract
- Add to MetaCart
In this paper we examine parameterized procedural abstraction. This is an extension of an optimization whose sole purpose is to reduce code size. Previously published implementations of procedural abstraction have produced space savings if the instruction sequences are exact matches. We show that permanent space savings (compaction) are possible when (1) covering all inexact matches by several procedures and (2) carefully choosing the inexact match instances covered by each procedure. Our algorithms yield substantially better space savings in comparison to approaches constrained to use unparameterized procedures. 1 Introduction Powerful applications that are small and fast have always been desirable. Falling memory prices and higher chip densities mean that internal storage constraints should (theoretically) recede into the background. However, many computer users are unsatisfied as they often find that there is never enough memory for their programs. Compiler optimizations are usual...

