------- Comment #2 from hjl dot tools at gmail dot com 2008-09-17 20:07 ------- Here is one approach to add OVERRIDE_OPTIMIZATION_OPTIONS so that a backend can have a chance to override optimization options.
--- gcc/config/i386/i386.h.override 2008-09-11 16:48:39.000000000 -0700 +++ gcc/config/i386/i386.h 2008-09-17 13:02:45.000000000 -0700 @@ -482,6 +482,8 @@ enum calling_abi #define OVERRIDE_OPTIONS override_options (true) +#define OVERRIDE_OPTIMIZATION_OPTIONS override_options (false) + /* Define this to change the optimizations performed by default. */ #define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \ optimization_options ((LEVEL), (SIZE)) --- gcc/opts.c.override 2008-09-15 08:44:27.000000000 -0700 +++ gcc/opts.c 2008-09-17 13:00:58.000000000 -0700 @@ -1105,8 +1105,14 @@ decode_options (unsigned int argc, const } #endif +#ifndef OVERRIDE_OPTIMIZATION_OPTIONS +#define OVERRIDE_OPTIMIZATION_OPTIONS do { } while (0) +#endif + /* Save the current optimization options if this is the first call. */ - if (first_time_p) + if (!first_time_p) + OVERRIDE_OPTIMIZATION_OPTIONS; + else { optimization_default_node = build_optimization_node (); optimization_current_node = optimization_default_node; -- hjl dot tools at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Component|target |c http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37565