> AFAIK not one of the tree optimizers disables itself, but perhaps we > should. The obvious candidates would be the ones that require > recomputation of alias analysis, and the ones that don't update SSA > info on the fly (i.e. require update_ssa, which is a horrible compile > time hog).
Tree alias analysis can partially disable itself though: /* If the program has too many call-clobbered variables and/or function calls, create .GLOBAL_VAR and use it to model call-clobbering semantics at call sites. This reduces the number of virtual operands considerably, improving compile times at the expense of lost aliasing precision. */ maybe_create_global_var (ai); We have found this to be quite helpful on gigantic elaboration procedures generated for Ada packages instantiating gazillions of generics. We have actually lowered the threshold locally. -- Eric Botcazou