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: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- To: law at redhat dot com
- Cc: Andrew MacLeod <amacleod at redhat dot com>,Richard Guenther <rguenth at tat dot physik dot uni-tuebingen dot de>,gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Mon, 19 Apr 2004 19:41:26 +0200
- Subject: Re: [lno] ICE in coalesce_abnormal_edges, at tree-outof-ssa.c:645
- References: <20040418225849.GA14213@atrey.karlin.mff.cuni.cz> <200404191558.i3JFwlax012220@speedy.slc.redhat.com>
Hello,
> In message <20040418225849.GA14213@atrey.karlin.mff.cuni.cz>, Zdenek Dvorak wri
> tes:
> >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?
> Andrew spec'd out a method which would have allowed us to coalesce as much
> as possible, then fixup things later. I don't think he ever implemented it
> tought.
>
> >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.
> Well, we have routines which do this (may_propagate_copy, propagate_value).
> You should be using them.
what I do is not copy propagation. What crashed in this testcase is
that you cannot safely create an induction variable whose base would use
ssa name occuring in an abnormal phi (since expressing anything using it
might require using this ssa name and thus extending its lifetime).
Which is just annoying to test and of course causes us to miss
optimization opportunities unnecessarily. The last point of course
applies to the cases where may_propagate_copy may be used easily, as
well.
Zdenek