Branch prediction for free

作者: Thomas Ball , James R. Larus

DOI: 10.1145/155090.155119

关键词: HeuristicsScheduling (computing)Machine learningProgram analysisComputer scienceSet (abstract data type)BranchArtificial intelligenceCompilerFortranParallel computingBranch predictor

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

参考文章(17)
Robert B. Murray, Sumit Bandyopadhyay, Vimal S. Begwani, Compiling for the CRISP Microprocessor. COMPCON. pp. 96- 101 ,(1987)
James R. Larus, Thomas Ball, Optimally Profiling and Tracing ,(1994)
Ravi Sethi, Jeffrey D. Ullman, Alfred V. Aho, Compilers: Principles, Techniques, and Tools ,(1986)
John L. Hennessy, David A. Patterson, Computer Architecture: A Quantitative Approach ,(1989)
Lee, Smith, Branch Prediction Strategies and Branch Target Buffer Design IEEE Computer. ,vol. 17, pp. 6- 22 ,(1984) , 10.1109/MC.1984.1658927
Joseph A. Fisher, John R. Ellis, John C. Ruttenberg, Alexandru Nicolau, Parallel processing Proceedings of the 1984 SIGPLAN symposium on Compiler construction - SIGPLAN '84. ,vol. 39, pp. 37- 47 ,(1984) , 10.1145/502874.502878
Thomas Ball, James R. Larus, Optimally profiling and tracing programs symposium on principles of programming languages. pp. 59- 70 ,(1992) , 10.1145/143165.143180
S. McFarling, J. Hennesey, Reducing the cost of branches international symposium on computer architecture. ,vol. 14, pp. 396- 403 ,(1986) , 10.1145/17356.17402
Carl-Cranz-Gesellschaft, CCG Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation - PLDI '91. ,vol. 26, pp. 45- 58 ,(1991) , 10.1145/113445.113450
Susan L Graham, Peter B Kessler, Marshall K McKusick, None, An execution profiler for modular programs Software - Practice and Experience. ,vol. 13, pp. 671- 685 ,(1983) , 10.1002/SPE.4380130803