This is the mail archive of the
mailing list for the GCC project.
Re: birthpoints in rtl.
On Sat, Mar 1, 2008 at 11:03 AM, Jan Hubicka <email@example.com> wrote:
> > The two complications are:
> > 1) libcalls
> I am probably dense here, but why we can't just ignore existence of
> libcalls for dataflow framework?
Not libcalls, but libcall *notes*.
> This exist so we can effectivly remove
> blocks of code in dead code removal and do some other changes, but I
> don't see how they can be less friendly to FUD than they are to DU/UD.
> Sure the optimization has to care to not break the extra invariant that
> libcalls stay independent, but that is.
The extra care is the problem. To be fair, the problem is manageable
(see the whole DCE vs. libcall notes thread from last year) but it
adds a lot of complexity and defeats the benefits of having FUD
chains. Basically the same problem as the issues we had for RTL SSA.
See these threads:
I could also start a rant here about how tree-ssa was supposed to make
libcall notes obsolete, how much better things already would be today
even without libcall notes if you compare it to the pre-tree-ssa era,
and how GCC once again chooses irrational conservatism over reaping
the fruits of all the tree-ssa work -- but that's *really* orthogonal
to this thread, so I won't ;-)
By the way, I still don't understand how birth points would work. Can
someone give an example of what the insn stream would look like with
birth points, and what the DU/UD chains would look like?