On Jul 25, 2008, at 1:54 AM, Richard Guenther wrote:
Sure, typedefs in C/C++ seem clearly useless. I'm just curious how you plan to go about deciding whether things are useless in a more general context. How fine of a granularity do you intend to inspect bits? Trees have lots of random stuff that are hard to identify and unify. Hopefully this will be a good step towards making LTO actually be able to work with source files
that come from different languages.  Does this mean that all
language-specific type info will be removed?

Well, "removed" as in "transformed into bits of the common middle-end
type system".  As we get new fancy optimizations that require
more information we can easily add to the middle-end type-system.

Ok.

More generally, can you detail what your plan is? Is it to remove specific pieces (like typedefs, what else?) or just hack and slash random stuff if it gets in your way? I'm more curious about your approach and "threshold for usefulness" than an abstract statement about how you will remove useless
stuff and keep the useful stuff :)

The approach would be to add pieces to an "empty" middle-end
type system, not to remove things from what the frontends give us.
This way we don't even need to look at all the stuff that is in
the frontends, but can concentrate on what is useful and needed
for the middle-end right now.

Sure, this makes plenty of sense to me (and sounds very *very* familiar). Do you intend to include things like TBAA in the initial type system? That is one example of extremely important information which requires pulling in almost the entire source type system.

-Chris

Reply via email to