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



On Wed, 10 Sep 2003, Daniel Berlin wrote:

>
>
> On Wed, 10 Sep 2003, Daniel Berlin wrote:
>
> >
> >
> > On Wed, 10 Sep 2003 law@redhat.com wrote:
> >
> > > In message <1063211660.30914.18.camel@p4>, Andrew MacLeod writes:
> > >  >On Wed, 2003-09-10 at 12:30, Andrew MacLeod wrote:
> > >  >> On Wed, 2003-09-10 at 11:32, Daniel Berlin wrote:
> > >  >
> > >  >> Looking at each place where may_propagate_copy() is called, in virtually
> > >  >> every instance that matters, we are processing the arguments of a PHI,
> > > "virtually every instance" is not good enough.  We need to know for any
> > > arbitrary copy if one of its arguments is referenced in an abnormal 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.
> > > No, you really need to set the bit -- you can't assume that you're only
> > > going to query this information at PHI nodes.
> > >
> > > What I want to know is why the code which sets this bit is not working
> > > in this case -- when we initialize a PHI argument (add_phi_arg) we query
> > > the edge flags and set SSA_NAME_OCCURS_IN_ABNORMAL_PHI appropriately.
> >
> > Right.
> > This is what i'm trying to figure out.  we don't have any abnormal edges
> > that we add phi arguments to (IE when we call add_phi_arg, the edge we
> > pass to it is not flagged as abnormal at any point in this testcase)
>
> Whoops, this isn't true, spoke too soon.
>
> We do, and add_phi_arg does flag the name as occuring in an abnormal phi.
>
> That leaves the case of ephi minimization replacing across abnormal edges
> before they turned into phis.

Turning off ephi minimization didn't help.

PRE also definitely marks the phi name in question as abnormal through
add_phi_arg.

But even if you turn off every pass afterwards, we still get the abort.

So it looks like PRE should be avoiding that insertion completely.


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