Binary Optimisers

Program-Transformation.Org: The Program Transformation Wiki
Binary Optimisers are sometimes called "Post Link optimisers". These products can be viewed as "X to X binary translators".

  • HP's Dynamo is pretty much the leader in this field

  • Wiggins/Redstone is an experimental dynamic optimiser that uses a novel combination of hardware sampling and software instrumentation to dynamically collect hot path information. It is unpublished as of 2001, but there is a series of slides from a presentation at Hot Chips 11, entitled Wiggins/Redstone: An On-line Program Specializer.

  • Microsoft's Mojo is a research dynamic optimiser for Windows. See the paper Mojo: A Dynamic Optimization System. Results to date are not good (most programs slow down), but they have directions for future improvements.

Static Optimisers (link time or post link). These are static optimisers, and so are not really binary translator, but are related, so they are mentioned here.

  • Compaq's spike is actually a static (but post link) optimiser that can take advantage of profile information. Thus, it's not really a binary translator.

  • Alto is a link time optimiser. It is therefore able to see all of the code at once (including libraries). Again, not a binary translator.

Binary program compactors. These systems compact programs to deal with the fact that hard disks are increasing in speed slower than processors are, or that embedded devices often have limited memory.

  • Squeeze++ is an example of this, applying aggressive whole-program optimization and code abstraction techniques on binary programs. Squeeze++ compacted programs are up to 70% smaller and at the same time 20% faster. Squeeze++ is a binary rewriter rather than a binary translator.