I seem to have lost this patch in my dev tree for some reason. After introducing --param max-combine-insns it was the idea to restrict combine to two-insn combines for -Og as combine is a major RTL compile-time hog.
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2014-09-03 Richard Biener <rguent...@suse.de> * opts.c (default_options_optimization): Adjust max-combine-insns to 2 for -Og. Index: gcc/opts.c =================================================================== *** gcc/opts.c (revision 214810) --- gcc/opts.c (working copy) *************** default_options_optimization (struct gcc *** 636,641 **** --- 637,648 ---- default_param_value (PARAM_MIN_CROSSJUMP_INSNS), opts->x_param_values, opts_set->x_param_values); + /* Restrict the amount of work combine does at -Og while retaining + most of its useful transforms. */ + if (opts->x_optimize_debug) + maybe_set_param_value (PARAM_MAX_COMBINE_INSNS, 2, + opts->x_param_values, opts_set->x_param_values); + /* Allow default optimizations to be specified on a per-machine basis. */ maybe_default_options (opts, opts_set, targetm_common.option_optimization_table,