Computer Science Department
School of Computer Science, Carnegie Mellon University


The Effect of Profile Choice and Profile
Gathering Methods on Profile-Driven Optimization Systems>

Geoff Langdale

October 2003

Ph.D. Thesis

Keywords: Compilers, optimization, performance of systems, modeling techniques

Profile-driven optimization can produce substantial improvements in the quality of code produced by a compiler or link-time optimizer. In this work, we analyze several important aspects of profile-driven optimization. We examine the effectiveness of profile-driven optimization in two commercial-quality optimizers (Digital s GEM compiler and the link-time optimizer alto ). We perform analyses to determine how much variability in profile-driven optimization performance results from choosing different training profiles, and to determine how much op-timization benefit results from choosing more accurate profiles (that is, profiles that better predict the way that a program is actually run). We examine low-overhead profiling methods such as static estimation (estimating profiles using static heuristics) and statistical sampling (gathering profiles by sampling only a small number of basic block executions). We analyze some profile-driven optimization results in great detail, and show a methodology for accounting for the profile-driven optimization effects of profile data associated with individual functions.

Our results show that profile-driven optimization is effective on average, but unreliable when considering any individual benchmark. Using more accurate pro-files is only weakly connected to improved profile-driven optimization performance for most benchmarks. However, low-overhead profiling techniques result in substantial degradations in the reliability and average performance of profile-driven optimization, often to the point of rendering the entire profile-driven optimization process useless. Our analysis also shows that the effects of profile-driven optimization are highly concentrated in the profile data associated with a few functions. Whether profile data improves or worsens the performance of optimized code, it is often possible to attribute the vast majority of this effect to the profile data associated with just a few functions.

138 pages

Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by