Combining Global Code and Data Compaction
Vakgroep Elektronica en Informatiesystemen
Universiteit Gent
B-9000 Gent, Belgium
Saumya Debray
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.
More and more computers are being incorporated in devices where the available amount of memory is limited. As a result research is increasingly focusing on the automated reduction of program size. Most if not all of the literature in this area either focuses on code compaction or on the removal of dead data. They are however closely related as code addresses are nothing but data. The main contribution of this paper is to show how combined code and data compaction can be achieved using a link-time code compaction system that works by reasoning about the use of both code and data addresses. The analyses proposed are built on fundamental properties of linked code and therefor generally applicable. The combined code and data compaction is evaluated on SPEC2000 and MediaBench programs, resulting in binary program size reductions of 24.0%-45.8%. This compaction involves no speed trade-off, as the compacted programs are on average about 5% faster.