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?


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


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