On Sun, Sep 23, 2012 at 10:46 AM, Eric Botcazou <ebotca...@adacore.com> wrote: > Hi, > > we have run into optimization regressions in Ada caused by the interaction > between the new GIMPLE clobbers and SRA: on the one hand GIMPLE clobbers > create artificial EH handlers for aggregate variables, on the other hand SRA > refuses to scalarize objects that appear in a statement that can throw > internally. The result is that GIMPLE clobbers block the scalarization of > variables that used to be possible up to the 4.6 series. > > Therefore the attached patch moves the ehcleanup pass to before early SRA in > the pipeline. It has a small but measurable positive effect on some of our > benchmarks (with a 4.7-based compiler). Tested on x86-64/Linux.
Hmm. I think cleanup EH is scheduled late to help early inlining. Do you have a testcase where I can quickly look at the issue you describe? Thanks, Richard. > > 2012-09-23 Eric Botcazou <ebotca...@adacore.com> > > * passes.c (init_optimization_passes): Run first EH cleanup pass > early. > > > -- > Eric Botcazou