This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR58554


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]