Improving Branch Prediction Accuracy Via Effective Source Information And Prediction Algorithms