Characterizing the Impact of Predicated Execution on Branch Prediction
Scott A. Mahlke, Richard E. Hank, Roger A. Bringmann, John C.
Gyllenhaal, David M. Gallagher, Wen-mei W. Hwu
mahlke@crhc.uiuc.edu
Abstract
Branch instructions are recognized as a major impediment to
exploiting instruction level parallelism. Even with sophisticated
branch prediction techniques, many frequently
executed branches remain difficult to predict. An
architecture supporting predicated execution may allow the
compiler to remove many of these hard-to-predict branches,
reducing the number of branch mispredictions and thereby
improving performance. We present an in-depth analysis of
the characteristics of those branches which are frequently
mispredicted and examine the effectiveness of an advanced
compiler to eliminate these branches. Over the benchmarks
studied, an average of 27% of the dynamic branches and 56%
of the dynamic branch mispredictions are eliminated with
predicated execution support.
Talk
Overheads (306242 bytes)