Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/11572961_27guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Using decision trees to improve program-based and profile-based static branch prediction

Published: 24 October 2005 Publication History

Abstract

Improving static branch prediction accuracy is an important problem with various interesting applications. First, several compiler optimizations such as code layout, scheduling, predication, etc. rely on accurate static branch prediction. Second, branches that are statically accurately predictable can be removed from the dynamic branch predictor thereby reducing aliasing. Third, for embedded microprocessors which lack dynamic branch prediction, static branch prediction is the only alternative.
This paper builds on previous work done on evidence-based static branch prediction which uses decision trees to classify branches. We demonstrate how decision trees can be used to improve the Ball and Larus heuristics by optimizing the sequence of applying the heuristics and by discovering two new heuristics, namely one based on the postdomination relationship between the current basic block and its successor and one based on the dependency distance between the branch and its operand defining instruction. Experimental results indicate an increase in the number of instructions per mispredicted branch by 18.5% on average for SPECint95 and SPECint2000. In addition, we show that decision trees can improve profile-based static branch prediction by up to 11.7% by predicting branches that are unseen in the profile runs.

References

[1]
T. Ball and J. R. Larus. Branch prediction for free. In PLDI, pages 300-313, June 1993.
[2]
S. Bandyopadhyay, V. S. Begwani, and R. B. Murray. Compiling for the CRISP microprocessor. In Proc. of the Spring 1987 COMPCON, pages 96-100, Feb. 1987.
[3]
B. Calder, D. Grunwald, M. Jones, D. Lindsay, J. Martin, M. Mozer, and B. Zorn. Evidence-based static branch prediction using machine learning. ACM Transactions on Programming Languages and Systems, 19(1):188-222, Jan. 1997.
[4]
J. Cavazos and J. E. B. Moss. Inducing heuristics to decide whether to schedule. In PLDI, pages 183-194, June 2004.
[5]
S. Debray, W. Evans, R. Muth, and B. De Sutter. Compiler techniques for code compaction. ACM ToPLaS, 22(2):378-415, Mar. 2000.
[6]
B. L. Deitrich, B.-C. Cheng, and W. mei W. Hwu. Improving static branch prediction in a compiler. In PACT, pages 214-221, Oct. 1998.
[7]
J. A. Fisher and S. M. Freudenberger. Predicting conditional branch directions from previous runs of a program. In 5th ASPLOS, pages 85-95, Oct. 1992.
[8]
T. M. Mitchell. Machine Learning. McGraw Hill, 1997.
[9]
H. Patil and J. Emer. Combining static and dynamic branch prediction to reduce destructive aliasing. In HPCA, pages 251-262, Jan. 2000.
[10]
J. R. C. Patterson. Accurate static branch prediction by value range propagation. In PLDI, pages 67-78, June 1995.
[11]
J. Quinlan. C4.5: Programs for Machine Learning. Morgan Kaufmann, 1993.
[12]
S. Savari and C. Young. Comparing and combining profiles. JILP, 2, Apr. 2000.
[13]
J. E. Smith. A study of branch prediction strategies. In ISCA, pages 135-148, May 1981.
[14]
M. Stephenson, S. Amarasinghe, M. Martin, and U.-M. O'Reilly. Meta optimization: improving compiler heuristics with machine learning. In PLDI, pages 77-90, June 2003.
[15]
D. W. Wall. Predicting program behavior using real or estimated profiles. In PLDI, pages 59-70, June 1991.
[16]
W. F. Wong. Source level static branch prediction. The Computer Journal, 42(2):142-149, 1999.
[17]
Y. Wu and J. R. Larus. Static branch frequency and program profile analysis. In 27th MICRO, pages 1-11, Nov. 1994.
[18]
C. Young and M. D. Smith. Improving the accuracy of static branch prediction using branch correlation. In 6th ASPLOS, pages 232-241, Oct. 1994.

Cited By

View all
  • (2021)VESPA: static profiling for binary optimizationProceedings of the ACM on Programming Languages10.1145/34855215:OOPSLA(1-28)Online publication date: 15-Oct-2021

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
ACSAC'05: Proceedings of the 10th Asia-Pacific conference on Advances in Computer Systems Architecture
October 2005
830 pages
ISBN:3540296433
  • Editors:
  • Thambipillai Srikanthan,
  • Jingling Xue,
  • Chip-Hong Chang

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 24 October 2005

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2021)VESPA: static profiling for binary optimizationProceedings of the ACM on Programming Languages10.1145/34855215:OOPSLA(1-28)Online publication date: 15-Oct-2021

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media