1. A serial branch predictor for anticipating the direction of branches in the execution of instructions in a computer program, comprising: a first branch predictor stage operating according to a first algorithm to predict a branch, at least one subsequent branch predictor stage, each given the prediction of the preceding branch predictor stage, operating according to a different algorithm to predict said branch, and having means for overruling the prediction from the preceding branch predictor stage if and only if prediction accuracy is likely to improve over the prediction from the preceding stage, whereby total branch predictor accuracy is increased.