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] Out of SSA status and issues


On Mon, 2003-05-12 at 11:38, Diego Novillo wrote:
> On Mon, May 12, 2003 at 10:42:43AM -0400, Andrew MacLeod wrote:
> 
> > So this problem needs to be resolved before we can turn on overlapping
> > ranges. We must not propagate copies which are going to cause conflicts
> > with other registers that are used across abnormal critical edges.  
> > 
> Perhaps we could just teach copy-prop not to use critical edges
> for the time being.  Or, to avoid pessimizing too much, we could
> try and use the same check we have now for overlapping live
> ranges in the SSA renamer.  I'm not sure if it's feasible,
> though.
> 

Unfortunately, it not propagating over a critical edge thats the
problem. Its propagating a copy past another use to form an overlapping
live range where both of those values are used in a PHI node at some
point across abnormal critical edges.

I beleive the bvrute force approach is to flag any variables which are
elements of PHI's acroiss an abnormal ciroitcal edge, and never copy
propagate them  ie, so in the example, when you look at the PHI, you see
p_9 and p_14 are used across abnormal critical edges, so you stick them
in a list of variables never to copy propagate.

I dont know that another optimiation might not do something which
results in the same condition or not. Time will tell.

On another note, shouldn't the into-ssa-pass's copy propagation only be
turned on when -ftree-copyprop is specified?  I think we do it all the
time right now... thus my problem in libstdc++ even without
-ftree-copyprop...


> We can't just unshare the INDIRECT_REF nodes.  The solution needs
> to share all the nodes that have the same pointer (i.e., all the
> (*p_3)_n SSA names need to have the same variable *p_3 as their
> SSA_NAME_VAR).  Once I fix that, it should all just work (FLW).
> 

Thats the working theory anwyay :-)

Andrew


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