BPred: Fix RAS to handle predicated call/return instructions.
Review Request #929 - Created Dec. 13, 2011 and submitted
| Information | |
|---|---|
| Ali Saidi | |
| gem5 | |
| Reviewers | |
| Default | |
BPred: Fix RAS to handle predicated call/return instructions. Change RAS to fix issues with predicated call/return instructions. Handled all cases in the life of a predicated call and return instruction.
Works for all regressions tests, however dependent branch predictor patch exposes x86 issues
Posted (Dec. 13, 2011, 4:12 p.m.)
Without wanting to dive into the branch predictor code I'll assume this is functionally correct, especially if you've run regressions. There are some style nits which I've pointed out. I'm also assuming *this* change doesn't break X86_FS on O3, and that this can be applied separately. I'm sure you're fixing a legitimate problem, but for my information could you please explain what the problem a little more specifically? There's no need to go into the gory details, I'd just like to be able to tell in the future if I'm running into whatever this is fixing. The branch predictor was just not handling returns from calls correctly?
-
src/cpu/o3/bpred_unit_impl.hh (Diff revision 1) -
should be on the same line as the }
-
src/cpu/o3/bpred_unit_impl.hh (Diff revision 1) -
change to hist_it->usedRAS?
-
src/cpu/o3/bpred_unit_impl.hh (Diff revision 1) -
space after ",", here and elsewhere
-
src/cpu/o3/bpred_unit_impl.hh (Diff revision 1) -
ditto, and below
-
src/cpu/o3/bpred_unit_impl.hh (Diff revision 1) -
Does this actually exceed 80 columns if it's on one line?
-
src/cpu/pred/tournament.cc (Diff revision 1) -
Too few spaces in the indent, the {}s aren't really needed (although I'm not too hung up on that), and you could use a ?: if you wanted. -
src/cpu/pred/tournament.cc (Diff revision 1) -
The spacing is off here too. Maybe a reviewboard thing?
Posted (Jan. 4, 2012, 12:12 p.m.)
Don't see any obvious problems (i.e., it's not obvious there are no problems...) other than the style nits. Need to go through and make sure there's a space after commas in arg lists, particularly after the first arg of DPRINTF.
-
src/cpu/o3/bpred_unit_impl.hh (Diff revision 1) -
Is there an extra blank line here?
