This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [lno] ICE in coalesce_abnormal_edges, at tree-outof-ssa.c:645
- From: Andrew MacLeod <amacleod at redhat dot com>
- To: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- Cc: Richard Guenther <rguenth at tat dot physik dot uni-tuebingen dot de>, gcc mailing list <gcc at gcc dot gnu dot org>
- Date: 19 Apr 2004 12:27:33 -0400
- Subject: Re: [lno] ICE in coalesce_abnormal_edges, at tree-outof-ssa.c:645
- References: <1082125723.17747.871.camel@p4> <20040418225849.GA14213@atrey.karlin.mff.cuni.cz>
On Sun, 2004-04-18 at 18:58, Zdenek Dvorak wrote:
> Hello,
>
> > Because its an abnormal edge, there is nowhere to insert a copy to
> > resolve the issue.
>
> Did someone try whether solving this by just coalescing as much as
> possible and fixing up the remaining abnormal edges by inserting the
> copies to temporary at the end of their source block and loads from the
> temporary at their end harms the code?
We do coalesce everything possible. Its when we cant coalesce we run
into the problem.
>
> It obviously might spoil the code if there were too many such stores
> emited, but it seems to me that it might well turn that this is rare, in
> which case it would be much nicer solution than the current one where we
> have to check & update the SSA_NAME_OCCURS_IN_ABNORMAL_EDGE everywhere.
>
I hate the SSA_NAME_OCCURS_IN_ABNORMAL_EDGE stuff. We introduced it
because it was happening with great regularity. copy propagation caused
it to happen a lot. I beleive some other optimizations made it happen
quite frequently as well.
I had toyed with the idea of adding an option which would generate the
required temporaries, but when I went to do so, I ran into a
problem/complication. I forget what it was, and I simply never got back
to it. Generally speaking, is a bad thing and best avoided. :-)
Andrew