Architectural Support Compiler-Synthesized Dynamic Branch
Prediction Strategies: Rationale and Initial Results [abstract] (IEEE Xplore, PDF, PostScript)
David I. August, Daniel A. Connors, John C. Gyllenhaal, and Wen-mei W. Hwu
Proceedings of the Third International Symposium on
High-Performance Computer Architecture (HPCA), February 1997.
This paper introduces a new architectural approach that
supports compilers-synthesized branch prediction. In
compiler-synthesized dynamic branch prediction, the compiler generates
code sequences that, when executed, digest relevant state information
and execution statistics into a condition bit, or predicate. The
Hardware then utilizes this information to make predictions. Two
categories of such architectures are proposed and evaluated. In
Predicate Only Prediction (POP), the hardware simply uses the
condition generated by the code sequence as a prediction. In Predicate
Enhanced Prediction (PEP), the hardware uses the generated condition
to enhance the accuracy of conventional branch prediction
hardware. The IMPACT compiler currently provides a minimal level of compiler
support for the proposed approach. Experiments based on current
predicated code show that the proposed predictors achieve better
performance than conventional branch predictors. Furthermore, they
enable future compiler techniques which have the potential to achieve
extremely high branch prediction accuracies. Several such compiler
techniques are proposed in this paper.