On Wed, Mar 11, 2015 at 03:30:36PM -0600, Jeff Law wrote: > +#ifndef GCC_GCSE__COMMONH > +#define GCC_GCSE__COMMONH
GCC_GCSE_COMMON_H instead? > @@ -1308,8 +1396,19 @@ gcse_after_reload_main (rtx f ATTRIBUTE_UNUSED) > > if (expr_table->elements () > 0) > { > + /* Knowing which MEMs are transparent through a block can signifiantly > + increase the number of reundant loads found. So compute transparency > + information for for each memory expression in the hash table. */ s/for for/for/ ? > + df_analyze (); > + /* This can not be part of the normal allocation routine because > + we have to know the number of elements in the hash table. */ > + transp = sbitmap_vector_alloc (last_basic_block_for_fn (cfun), > + expr_table->elements ()); > + bitmap_vector_ones (transp, last_basic_block_for_fn (cfun)); > + expr_table->traverse <FILE *, compute_expr_transp> (dump_file); > eliminate_partially_redundant_loads (); > delete_redundant_insns (); > + sbitmap_vector_free (transp); > > if (dump_file) > { What effect does the patch have on compile time on say x86_64 or ppc64? I'm slightly leaning towards trying it even in stage4, but if e.g. richi disagrees, we could defer it to stage1 too. Jakub