> I would greatly appreciate any guidance on the following: > > > - Are there optimization-related behaviors at -O1 that are controlled > implicitly (e.g., via internal optimize > 0 gating or other non-flag > mechanisms)? > - Is it expected that -O0 behavior cannot be fully reproduced by > disabling flags starting from -O1? > - Are there additional factors that significantly differentiate -O1 from > -O0, and can I redirect those properties while transitioning from O1 to > O0? > - Can I implement any flag that will redirect to O0 properties even if > I run O1 with all defined disable flags?
There are global variables (optimize, optimize_debug, optimize_fast and optimize_size) directly set by the -Ox switches, in combination with others. So no -Ox switch can be reduced to a simple combination of -f switches, and that's indeed particularly visible for -O1 vs -O0. We already have way too many -f switches in GCC, so I'm not sure that more of them would be welcome. -- Eric Botcazou
