On Tue, 1 Oct 2013, Bernhard Reutner-Fischer wrote: > On 30 September 2013 14:19:01 Richard Biener <rguent...@suse.de> wrote: > > > > This fixes PR58554, pattern recognition in loop distribution now > > needs to check whether all stmts are unconditionally executed. > > > > Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk. > > > > Richard. > > > > 2013-09-30 Richard Biener <rguent...@suse.de> > > > > PR tree-optimization/58554 > > * tree-loop-distribution.c (classify_partition): Require > > unconditionally > > executed stores for memcpy and memset recognition. > > (tree_loop_distribution): Calculate dominance info. > > > > * gcc.dg/torture/pr58554.c: New testcase. > > > > Index: gcc/tree-loop-distribution.c > > > *************** out: > > *** 1719,1724 **** > > --- 1723,1729 ---- > > { > > if (!cd) > > { > > + calculate_dominance_info (CDI_DOMINATORS); > > calculate_dominance_info (CDI_POST_DOMINATORS); > > cd = new control_dependences (create_edge_list ()); > > free_dominance_info (CDI_POST_DOMINATORS); > > Don't you have to free CDI_DOMINATORS too now, somewhere?
Not unless they become invalid. We preserve dominators across passes (unlike post-dominators, because those are not kept up-to-date by CFG manipulation functions). Richard.