The present invention provides software branch prediction filtering for a
microprocessor. In one embodiment, a method for a software branch
prediction filtering for a microprocessor includes determining whether a
branch is "easy" to predict, and predicting the branch using software
branch prediction if the branch is easy to predict. Otherwise (i.e., the
branch is "hard" to predict), the branch is predicted using hardware
branch prediction. Accordingly, more accurate but space-limited hardware
branch prediction resources are conserved for hard-to-predict branches.