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. >