[PATCH] PR/7344, O(n^2) branch prediction

Daniel Berlin dberlin@dberlin.org
Thu Sep 5 10:27:00 GMT 2002



On Thu, 5 Sep 2002, Zdenek Dvorak wrote:

> Hello,
> 
> > > > I tried to make bootstrap, but it didn't finish due to unrelated issues.
> > > > Would appreciate if you could run it.
> > > 
> > > OK, it's in progress.  Results in a few hours.
> > > 
> > > Brad
> > > 
> > 
> > Also, it would be good if someone more familiar with branch prediction
> > checked the patch, and make sure I'm testing for the right condition...
> 
> !   for (e = BASIC_BLOCK (y)->succ, count = 0; e; e = e->succ_next)
> !     {
> !       if (++count >= 2)
> !         break;
> !       if (e->dest->index >= 0
> !           && dominated_by_p (post_dominators, e->dest, bb))
> !         predict_edge_def (e, pred, taken);
> !     }
> 
> I believe there should be "if (count++ >= 2)"; the way it is here it
> will break too soon.

No it won't, it'll break if the branch is multiway. Multiway is  > 1, not 
> 2.

In fact, the whole loop is pointless, since it will only execute once. You 
might as well just say
if (BASIC_BLOCK (y)->succ)
{
	...
}	
> 
> Zdenek Dvorak
> 
> 
> 



More information about the Gcc-patches mailing list