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?
- From: law at redhat dot com
- To: Andrew MacLeod <amacleod at redhat dot com>
- Cc: Daniel Berlin <dberlin at dberlin dot org>, Diego Novillo <dnovillo at redhat dot com>, Gerald Pfeifer <gerald at pfeifer dot com>, gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Wed, 10 Sep 2003 11:03:15 -0600
- Subject: Re: [tree-ssa] crash in coalesce_abnormal_edges, merge from mainline?
- Reply-to: law at redhat dot com
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.
So either something is bypassing add_phi_arg or something is modifying an
existing phi argument by replacing one variable with another -- which is
copy propagation -- which in turn would imply that something is doing a
copy propagation without checking the SSA_NAME_OCCURS_IN_ABNORMAL_PHI
bit.
Jeff
Jeff