This is the mail archive of the
mailing list for the GCC project.
Re: Higher level RTL issues
- To: law at redhat dot com
- Subject: Re: Higher level RTL issues
- From: Daniel Berlin <dan at cgsoftware dot com>
- Date: Mon, 22 Oct 2001 16:09:49 -0400
- Cc: dnovillo at redhat dot com, gcc at gcc dot gnu dot org
> So, how do you turn this back into normal form? Well, for the camp that
> reflects the SSA names in the IR, it's the standard SSA->normal
> and everything just works.
> So how is this done when SSA names are not reflected in the IR?
You can do the same thing.
You just need names.
If you look at the ssa-ccp patch i submitted, you'll note i added a
unique id number to each ref, and use it in the following way to give an
For a phi or a def, the ssa name is the id number.
For a use, the ssa name is the id number of the associated def.
This gives you the same "name" an explicit renamed representation would
give you, but we still haven't rewritten any code.
Now, just insert real copies for the fake phis, and you are golden. (IE
converting *out* of fud chains of course, could require real code
I'm assuming you keep the definitions/uses/phi links updated
approriately, which is where the real pain lies.
You could actually probably get away with only inserting copies for
modified phis (making sure you remove arguments for defs that no longer
> I have
> ideas, but I'd like to hear from someone with more experience in the
> non-rewriting camp. You certainly can't do the naive thing and drop the
> SSA names in favor of the original names.
> FWIW, k.c.04.ssa is the same as j.c.04.ssa, except that dominator opts
> applied during translation into SSA form. It may or may not be useful
> folks that want to poke around at this issue.