Dynamic branch prediction
In a dynamic branch prediction scheme the hardware influences the prediction while execution proceeds.
Prediction is decided on the computation history of the program.
After a start-up phase of the program execution, where a static branch prediction might be effective, the history information is gathered and dynamic branch prediction gets effective.
In general, dynamic branch prediction gives better results than static branch prediction, but at the cost of increased hardware complexity.