[patch] Fix updating of dominators in thread_jumps

Zdenek Dvorak rakdver@atrey.karlin.mff.cuni.cz
Sun Sep 12 18:24:00 GMT 2004


Hello,

> >	* tree-cfg.c (thread_jumps): Update dominators correctly in
> >	case destination of threaded edge dominates its source.
> 
> Do you have a testcase?

sorry, I forgot; here is the Steven's testcase demonstrating the
problem.

Zdenek

extern int clobber_k (int *); 
extern int barrier (void); 
int t, u; 

int
process_second_stream(void) 
{ 
  int k; 
  int i = 0, j = 0, result; 
 
  clobber_k (&k); 
 
  while(t)
    ;
 
  while(!j) 
    {
      while(!j) 
	{ 
	  barrier (); 
	  if (t == 0) 
	    break; 
	  else if(t == 1) 
	    t = 2; 
	  else 
	    {
	      if(t < 0) 
		j=1; 
	      if(u < 0) 
		k = i++; 
	    }
	} 
 
      if(!j && u) 
	j=1; 
    } 
 
  return 0; 
} 



More information about the Gcc-patches mailing list