[PATCH] Fix PR58554

Richard Biener rguenther@suse.de
Wed Oct 2 07:54:00 GMT 2013


On Tue, 1 Oct 2013, Bernhard Reutner-Fischer wrote:

> On 30 September 2013 14:19:01 Richard Biener <rguenther@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  <rguenther@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.



More information about the Gcc-patches mailing list