This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] PR/7344, O(n^2) branch prediction
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- Cc: tm <tm at mail dot kloo dot net>, Brad Lucier <lucier at math dot purdue dot edu>,<jh at suse dot cz>, <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 5 Sep 2002 13:27:05 -0400 (EDT)
- Subject: Re: [PATCH] PR/7344, O(n^2) branch prediction
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
>
>
>