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