This is the mail archive of the
mailing list for the GCC project.
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 email@example.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
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.