Branch Prediction
Branch Prediction — A microarchitectural technique that predicts conditional control flow before resolution so the processor can continue feeding speculative work into the pipeline.
Why It Exists
In a deep pipeline, waiting until every conditional branch is fully resolved would leave the front end idle. A branch predictor uses execution history and microarchitectural state to guess the likely control-flow direction, allowing instruction fetch and speculative execution to continue.
A correct prediction hides much of the branch delay. A misprediction discards speculative work and restarts from the correct path. The cost therefore depends on pipeline depth and the target microarchitecture.
Performance Interpretation
Data-dependent and irregular branches can be difficult to predict. Rewriting code as branchless is not automatically faster; extra instructions, dependencies and vectorization opportunities have to be measured.
Source code alone is insufficient to predict the result. Profiling, hardware counters and the actual processor matter.