International Symposium on Code Generation and Optimization (CGO'06)
2D-Profiling: Detecting Input-Dependent Branches with a Single Input Data Set
New York, New York
March 26-March 29
ISBN: 0-7695-2499-0
Static compilers use profiling to predict run-time program behavior. Generally, this requires multiple input sets to capture wide variations in run-time behavior. This is expensive in terms of resources and compilation time. We introduce a new mechanism, 2D-profiling, which profiles with only one input set and predicts whether the result of the profile would change significantly across multiple input sets. We use 2D-profiling to predict whether a branch?s prediction accuracy varies across input sets. The key insight is that if the prediction accuracy of an individual branch varies significantly over a profiling run with one input set, then it is more likely that the prediction accuracy of that branch varies across input sets. We evaluate 2D-profiling with the SPEC CPU 2000 integer benchmarks and show that it can identify input-dependent branches accurately.
Citation:
Hyesoon Kim, M. Aater Suleman, Onur Mutlu, Yale N. Patt, "2D-Profiling: Detecting Input-Dependent Branches with a Single Input Data Set," cgo, pp.159-172, International Symposium on Code Generation and Optimization (CGO'06), 2006