Static branch frequency and program profile analysis

  • Authors:
  • Youfeng Wu;James R. Larus

  • Affiliations:
  • Sequent Computer Systems, Inc., D2-798, 15450 S.W. Koll Parkway, Beaverton, OR;Computer Sciences Department, University of Wisconsin-Madison, 1210 West Dayton St., Madison, WI

  • Venue:
  • MICRO 27 Proceedings of the 27th annual international symposium on Microarchitecture
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

Program profiles identify frequently executed portions of a program, which are the places at which optimizations offer programmers and compilers the greatest benefit. Compilers, however, infrequently exploit program profiles, because profiling a program requires a programmer to instrument and run the program. An attractive alternative is for the compiler to statically estimate program profiles. This paper presents several new techniques for static branch prediction and profiling. The first technique combines multiple predictions of a branch's outcome into a prediction of the probability that the branch is taken. Another technique uses these predictions to estimate the relative execution frequency (i.e., profile) of basic blocks and control-flow edges within a procedure. A third algorithm uses local frequency estimates to predict the global frequency of calls, procedure invocations, and basic block and control-flow edge executions. Experiments on the SPEC92 integer benchmarks and Unix applications show that the frequently executed blocks, edges, and functions identified by our techniques closely match those in a dynamic profile.