MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Branch Prediction For Free (1993) [145 citations — 8 self]

by Thomas Ball ,  Thomas Ball ,  James R. Larus ,  James R. Larus
Add To MetaCart

Abstract:

Many compilers rely on branch prediction to improve program performance by identifying frequently executed regions and by aiding in scheduling instructions. Profile-based predictors require a time-consuming and inconvenient compile-profile-compile cycle in order to make predictions. We present a program-based branch predictor that performs well for a large and diverse set of programs written in C and Fortran. In addition to using natural loop analysis to predict branches that control the iteration of loops, we focus on heuristics for predicting non-loop branches, which dominate the dynamic branch count of many programs. The heuristics are simple and require little program analysis, yet they are effective in terms of coverage and miss rate. Although program-based prediction does not equal the accuracy of profile-based prediction, we believe it reaches a sufficiently high level to be useful. Additional type and semantic information available to a compiler would enhance our heuristics. #...

Citations

3312 Computer Architecture a Quantitative Approach – Hennessy, Patterson - 1996
597 Trace scheduling : A technique for global microcode compaction – Fisher - 1981
374 A study of branch prediction strategies – Smith - 1981
240 Profile guided code positioning – Pettis, Hansen - 1990
238 Optimally Profiling and Tracing Programs – Ball, Larus - 1994
221 Branch prediction strategies and branch target buffer – Lee, Smith - 1984
147 Predicting Conditional Branch Directions from Previous Runs of a Program – Fisher, Freudenberger - 1992
121 Reducing the cost of branches – McFarling, Hennessy - 1986
47 Parallel processing: a smart compiler and a dumb machine – Fisher, Ellis, et al. - 1984
38 CCG: A Prototype Coagulating Code Generator – Morris - 1991
22 An execution profiler for modular programs. Software--Practice and Experience – Graham, Kessler, et al. - 1983
12 Optimally Profiling and Tracing – Ball, Larus - 1992
8 Compiling for the CRISP Microprocessor – Bandyopadhyay, Begwani, et al. - 1987
6 An execution profiler for modular programs", Software Practice Exper – Graham, Kessler, et al.
6 Alpha Architecture Reference Manual. Digital Equip – Sites - 1992
1 Compiling for the CRISP – Bandyopadhyay, Begwani, et al. - 1987