Profile Merging and Code Versioning for Automated Profile Guided Optimization Systems

Rahul Saxena.
M.S. Thesis, Department of Electrical and Computer Engineering, University of Colorado. May, 2007.
Traditional Profile Guided Optimization schemes (PGO) require developers to manually select profiles which are representative of typical program executions, in order to optimize the final release binary. Most profile merge algorithms use a weighted av- eraging scheme to accumulate profile data into a composite (merged) profile. However, such simple additive schemes have been shown (Wang et. al) to degrade the effective- ness of profile information by diluting branch biases. The requirement of an accurate merge algorithm becomes all the more important in the context of Managed Run-time Environments (MRTE). Within such systems PGO schemes are required to be deployed on client machines and have to function automatically and transparently to user inter- vention. To address these criteria, we propose a detailed merge heuristic which resolves conflicts in branch by examining factors such as predictability of branch bias and branch weight. This algorithm is conservative on branch bias when bias information from dif- ferent profiles are conflicting. The algorithm also takes into account the repetitiveness of execution runs to more accurately favor the behavior of typical execution scenarios. We hypothesize that our proposed merge algorithm can improve the quality of a com- posite profile by maximizing performance gain across input data sets while minimizing regressions for individual runs. We are currently in the process of implementing the proposed merge algorithm and ongoing work will focus on evaluating its performance benefit as compared to traditional schemes.

[ PDF ]