BRAT: Branch Prediction Via Adaptive Training