An issue for the SC: horrible documentation quality of GCC

Richard Kenner kenner@vlsi1.ultra.nyu.edu
Mon May 12 16:25:00 GMT 2003


    > For this and other reasons I've come to the conclusion that we need to
    > separate our optimizations into generic and target dependent
    > optimizations. And that conceptually the generic optimizations should
    > strive to eliminate as much redundancy as possible, fully propagate
    > constants/copies, etc and leave it to the expanders and target
    > dependent optimizers to "undo" unprofitable redundancy elimination,
    > cprop, etc.

    Amen.

And I continue to strongly disagree with the above.  The key to GCC's
success over the years has precisely been the knowlege of the
underlying machine characteristics within the optimizers.  I certainly
agree that there are some high-level optimizations that can be
peformed in a machine-independent manner and these are the ones that
are being done on trees.

But I think that once we're at the state of optimizing RTL, all optimizers
need to know a lot about the machine they are optimizing for.  Moreover,
I believe that the RTL optimizers will always have to have duplicate
optimizations with the tree level: for example, address calculations can 
produce common subexpressions (often global) and loop invariants.



More information about the Gcc mailing list