On Fri, Nov 18, 2011 at 5:11 AM, Tom de Vries <tom_devr...@mentor.com> wrote:
> Hi Eric,
>
> this patch fixes an inefficiency problem I observed while working on PR50764.
>
> For the test-case of PR50764, a dead label is introduced by 
> fixup_reorder_chain
> in cfg_layout_finalize, called from pass_reorder_blocks.
> The dead label is removed by a cleanup_cfg in pass_duplicate_computed_gotos, 
> but
> is still present during pass_sched2.
> When constructing ebbs in schedule_ebbs, the dead label ends an ebb. If we
> remove the label before pass_sched2, the ebb is allowed to grow larger.
>
> The patch tries to get rid of the dead label immediately after it's 
> introduced,
> in cfg_layout_finalized.
>
> The new test gcc.dg/superblock.c uses -fno-asynchronous-unwind-tables to work
> around PR50764.
>
> bootstrapped and reg-tested on x86_64.
>
> OK for next stage 1?

ENOPATCH.

>
> Thanks,
> - Tom
>
> 2011-11-18  Tom de Vries  <t...@codesourcery.com>
>
>        * rtl.h (delete_dead_labels): Declare.
>        * cfgcleanup.c (delete_dead_labels): New function.
>        * cfglayout.c (cfg_layout_finalize): Use delete_dead_labels.
>
>        * gcc.dg/superblock.c: New test.
>

Reply via email to