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: Fri, 19 Oct 2001 18:52:52 -0400
- Cc: gcc at gcc dot gnu dot org
<snip the rest, for various reasons, i'm not going to reply>
> I'll have to show you an example where you do need renaming to perform
> relatively simple redundancy elimination problems that are found by any
> reasonable value numbering scheme.
Any updating you'd have to do to def-use chains in tree-ssa, you'd have
to do in the explicitly renamed version.
If you have to at all, which you don't in reasonable value numbering
Take dominator based value numbering, for instance.
It's explicitly computing which expressions are dominated by expressions
that compute the same value.
It then removes the extra computations, and rewrites uses of them to use
the original computations.
Where's the renaming needed?
SCC based value numbering is the same way.
Nowhere do you insert *new* computations of a value.
In fact, nowhere in any normal redundancy elimination problem do you
insert new computations of values, only partial redundancy problems.
The only reason we do it now in some cases is because RTL effectively
requires us to, in some cases.
Doing it at the tree SSA level, for instance, has no such problem.
I.E. It's not a FUD-chain problem, it's an RTL-SSA problem.