This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [lno] ICE in coalesce_abnormal_edges, at tree-outof-ssa.c:645


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]