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

Reply via email to