> On 2011-12-14 00:12:06, Gabe Black wrote: > > 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? > > Ali Saidi wrote: > This change requires the previous BP change and can't be supplied > separately, but I'm just adding it to review board so I could point someone > towards it. The previous implementation assumed that if you executed a call > or return that it must be taken (they're not conditional in any way on > Alpha). However, with ARM (and perhaps others) the return and call > instructions are conditionally executed, so you could predict the call/return > incorrectly and then mess up the order on the RAS. This addresses those > cases. > > Separately, it seems like these branch predictor changes and Nilay's > changes to get o3 working with ruby are all dependent on fixing x86.
What needs to be fixed in x86? I saw an error with a non-speculative instruction getting squashed even though it had no fault associated with it. Adding memory fences to I/O instructions does away with that. - Nilay ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/929/#review1751 ----------------------------------------------------------- On 2011-12-13 10:02:20, Ali Saidi wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.m5sim.org/r/929/ > ----------------------------------------------------------- > > (Updated 2011-12-13 10:02:20) > > > Review request for Default. > > > Summary > ------- > > 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. > > > Diffs > ----- > > src/cpu/o3/bpred_unit.hh c1ab57ea8805 > src/cpu/o3/bpred_unit_impl.hh c1ab57ea8805 > src/cpu/o3/commit_impl.hh c1ab57ea8805 > src/cpu/pred/tournament.cc c1ab57ea8805 > > Diff: http://reviews.m5sim.org/r/929/diff > > > Testing > ------- > > Works for all regressions tests, however dependent branch predictor patch > exposes x86 issues > > > Thanks, > > Ali > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
