Code Compaction results (Philip Koopman)
Mon, 19 Aug 91 13:39:39 GMT

          From comp.compilers

Related articles
Code Compaction results (1991-08-19)
Code Compaction results (1991-08-15)
| List of all articles for this month |

Newsgroups: comp.compilers
From: (Philip Koopman)
Summary: 8 references from the net
Keywords: code, interpreter
Organization: School of Computer Science, Carnegie Mellon
Date: Mon, 19 Aug 91 13:39:39 GMT

A while ago I posted:
>I am looking for references to compiler techniques that significantly
>reduce object code size (by a factor of 2 or more). ...

Below is a summary of the results. Thanks to all who replied!!

    Phil Koopman
    United Technologies Research Center (203) 727-1624
    411 Silver Lane East Hartford, CT 06108


Geschke, Charles M. "Global Program Optimizations", Carnegie Mellon
    Department of Computer Science, Ph.D. Thesis, October 1972
(discusses 'wasp-waisting' and code similarity compactions)


Wulf, Johnsson, Weinstock, Hobbs, Geschke, "The Design of an Optimizing
  Compiler", North Holland, 1975


proceduralizes everything using data compression techniques;
automatic generation of interpreter byte codes, if you will.
      %A J. W. Davidson
      %A C. W. Fraser
      %T Eliminating Redundant Object Code
      %J POPL9
      %P 128-132


Here's a reference that is not exactly what you want,
but might suggest some ideas:
                Mark Taunton
                Compressed executables: an exercise in thinking small
                Proc. Summer 1991 Usenix Conf. (June 10-14, 1991), 385-403

In some cases you can achieve small static code sizes by using dynamic
compilation and having a large dynamic code size. For embedded
controllers, this probably won't work.

%A Christopher W. Fraser
%A Eugene W. Myers
%A Alan L. Wendt
%T Analyzing and Compressing Assembly Code
%B Proceedings of the ACM SIGPLAN '84 Symposium on Compiler
%J SIGPLAN Notices
%V 19
%N 6
%D June 1984
%P 117-121

%A Thomas Pittman
%T Two-Level Hybrid Interpreter/Native Code Execution for Combined
Space-Time Program Efficiency
%D 1987
%P 150-152
The last paper basically says ``you can code infrequently-used things
compactly, frequently-used things non-compactly, and achive significant
space reduction with only minor performance loss.''


  AUTHOR Rosenberg, Jonathan and Shaw, Mary, 1943- Advisor.
  TITLE Generating compact code for generic subprograms.
                      Carnegie-Mellon University. Department of Computer Science.
  CITATION Pittsburgh, PA : Carnegie-Mellon University, 1983.
  NOTES Thesis (Ph.D.)--Carnegie-Mellon University, 1983.


The GNU C compiler compacts code to some extent by having only one
copy of equal basic block tails and jumping there from all the basic
blocks that have this tail. This makes a big difference in the
machine-generated switch statements I use.



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.