Compacting object code via parameterized procedural abstraction
Date
1995
Authors
Zastre, Michael M. J. (Michael Marcus Joseph)
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Current compiler optimization research focuses on program transformations that increase code speed. Decreasing object file size is sometimes a goal since less code often means faster code. In this thesis 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 where instruction sequences are exact matches (i.e. instruction operations and operands are the same between code sequences). Researchers felt that parameterizing differences had too high a cost, but no investigations have been made into the potential space savings from exploiting inexact matches. We show that permanent space savings (compaction) are possible when (1) covering matches with more than one procedure and (2) carefully choosing which inexact match instances are covered by each procedure. Our heuristic algorithms choose a mix of parameterized and unparameterized procedures that yield substantially better space savings in comparison to unparameterized procedures only.