> 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?

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.


- Ali


-----------------------------------------------------------
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

Reply via email to