This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] crash in coalesce_abnormal_edges, merge from mainline?
On Wed, 10 Sep 2003, Andrew MacLeod wrote:
> 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.
But add_phi_arg already does this for us, and that's what we use to add
phi arguments.
I also made it not PRE expressions whose names occur in abnormal phi's,
and this doesn't help.
So this means the abnormal edge is created by PRE.
Can we create abnormal edges during critical edge splitting (since this is
the only case where PRE actually creates a new edge)?
If so, i think i know where to add the check.
>
> I'm going to give it a try right now.
>
> Andrew
>
>