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,

> On Fri, 2004-04-16 at 09:57, Richard Guenther wrote:
> > With the tramp3d-v3.cpp testcase I get an ICE with todays lno branch if
> > compiling with -O2 -funroll-loops -ffast-math -march=athlon:
> > 
> >  Conflict pt_466 and pt_435 across an abnormal edge from BB17->BB19
> 
> > 
> > Maybe a merge from tree-ssa would help (ICE doesn't look lno related at
> > first look)
> > 
> 
> That typically means someone has extended the live range of a variable
> across an abnormal edge, causing a conflict between either 2 arguments
> of a PHI node or the result of the PHI and an argument.

right, I have obviously forgotten about this in the induction variable
optimizer.  I am testing the fix now.

> 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?

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.

Zdenek


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