This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa] copy-propagation pass
- From: Diego Novillo <dnovillo at redhat dot com>
- To: law at redhat dot com
- Cc: Jason Merrill <jason at redhat dot com>, Aldy Hernandez <aldyh at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Mon, 25 Nov 2002 18:01:28 -0500
- Subject: Re: [tree-ssa] copy-propagation pass
- Organization: Red Hat Canada
- References: <firstname.lastname@example.org> <200211252224.gAPMOXqa001619@porcupine.cygnus.com>
On Mon, 25 Nov 2002, Jeff Law wrote:
> >Seems like SSA should handle this.
> >a = y1
> >y2 = z;
> >if (a) --> if (y1)
> > blah;
> >Your problem comes from treating the two y's as one.
> Exactly. And this is the precise and fundamental issue I have with
> non-rewriting SSA implementations.
Diego falls on his sword :)
Due to overwhelming peer pressure, I will be tweaking the
implementation to re-write the program into SSA form. It's not
going to be high in my list, as this particular problem is
fixable in the current framework. Patches are more than welcome.
Aldyh, what is the change to varray.h? It doesn't seem
Additionally, make_replacement() should not be replacing the
reference with a new variable. It needs to copy the *original*
reference in the statement. That is, your argument 'replacement'
should be another tree_ref, not a tree. This is where the
current framework will help you. If you try to replace 'ref'
with a reference that is dead at the point of insertion, nothing
Could you add a FIXME note? Other than that, it looks OK as a