How Branch Prediction Works

Most modern CPUs use a branch history table for dynamic branch prediction. What does it track?

A

The number of times each function has been called

B

The addresses of all variables used in branch conditions

C

The recent taken/not-taken outcomes of each branch

D

The execution time of each branch to estimate which path is faster