Code Specialization based on Value Profiles
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.
It is often the case that at runtime, variables and registers in programs are ``quasi-invariant,'' i.e., the distribution of the values they take on is very skewed, with a small number of values occurring most of the time. Knowledge of such frequently occurring values can be exploited by a compiler to generate code that optimizes for the common cases without sacrificing the ability to handle the general case. Since this involves the introduction of runtime tests, a careful cost-benefit analysis is necessary to make sure that the benefits from executing the code specialized for the common values outweigh the cost of testing for these values. This paper describes an implementation of value-profile-based code specialization within a link-time code optimizer.