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: [tree-ssa] crash in coalesce_abnormal_edges, merge frommainline?


On Wed, 2003-09-10 at 11:32, Daniel Berlin wrote:
> >
> > And the report is:
> >
> > Different root vars 'pretmp.12631' and 'T.11763' across an abnormal edge from BB1740->BB1742
> >
> > In file included from dl.C:204:
> > parser.c: In function `int yyparse()':
> > parser.c:3724: internal compiler error: in coalesce_abnormal_edges, at tree-ssa.c:1263
> > Please submit a full bug report,
> > with preprocessed source if appropriate.
> > See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> >
> > pretmp.12631 needs to have the SSA_NAME_OCCURS_IN_ABNORMAL_PHI() bit set.
> 
> Errr, how do i know this?
> 
> IE how do i know when to set the bit during insertion?
> 

The bit must be set on any variable who appears in the argument of a PHI
node across an abonrlmal edge... 

So when you are creating a PHI node, if an argument's edge has the
abnormal flag set, you need to set the bit for that variable.


Hmm. That makes me think of something else...

Knowing how much I hate these kinds of bits that must be set to do
something rigt later on, it appears that we might be able to get rid of
it.

The only places which really use SSA_NAME_OCCURS_IN_ABNORMAL_PHI is
may_propagate_copy().

Looking at each place where may_propagate_copy() is called, in virtually
every instance that matters, we are processing the arguments of a PHI,
which means have access to the edge that arguement comes across right
there on the spot... so we could just check the flag on the edge and not
do the copy propagate based on that.. Then we dont have this auxillary
bit hanging around.

I think it can be done, and it ought to work...  Thoguhts?  Wasn't there
originally something else we were using this for?

I'm going to give it a try right now.

Andrew


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