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


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






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