Improving Semi-static Branch Prediction by Code Replication
Andreas Krall
Institut für Computersprachen
Technische Universität Wien
Argentinierstraße 8
A-1040 Wien
andi@complang.tuwien.ac.at
Abstract
Speculative execution on superscalar processors demands substantially
better branch prediction than what has been previously available. In this
paper we present code replication techniques that improve the accurracy of
semi-static branch prediction to a level comparable to dynamic branch
prediction schemes. Our technique uses profiling to collect information
about the correlation between different branches and about the correlation
between the subsequent outcomes of a single branch. Using this information
and code replication the outcome of branches is represented in the program
state. Our experiments have shown that the misprediction rate can almost
be halved while the code size is increased by one third.