how to fix anti-optimization?
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Fri Sep 14 15:27:00 GMT 2001
const double Prescale[] = { 3.0, 5.0 };
extern void bar(double, double);
void foo () { bar(Prescale[0], Prescale[1]); }
With -O1 or higher, gcc substitutes constants 3.0 and 5.0 for the array
references. This isn't a win on targets where the extra copies of these
constants have to go in memory; you get an extra copy of the constants in
data space.
Only if it's no more complex an expression. Consider Prescale[0]*Prescale[1].
It's *much* faster to do the folding in that case.
More information about the Gcc
mailing list