https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100314

--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
However i is also dead at dse time:
void d (int m)                                                                  
{                                                                               
  int k;                                                                        
  int * l[5];                                                                   
  int * * * i[1];                                                               
  int * * h[30];                                                                
  int b.1_11;                                                                   
  int _12;                                                                      
  int g.2_13;                                                                   

  <bb 2> :                                                                      
  MEM <char[232]> [(int * *[30] *)&h + 8B] = {};                                
  h[0] = &c;                                                                    
  i[0] = &h[3];                                                                 
  if (m_6(D) != 0)                                                              
    goto <bb 3>; [INV]                                                          
  else                                                                          
    goto <bb 4>; [INV]                                                          

  <bb 3> :                                                                      
  foo ();                                                                       

  <bb 4> :                                                                      
  l[0] = &k;                                                                    
  l[1] = &k;                                                                    
  l[2] = &k;                                                                    
  l[3] = &k;                                                                    
  l[4] = &k;                                                                    
  goto <bb 6>; [100.00%]                                                        

  <bb 5> :                                                                      
  j = &l[0];                                                                    
  b.1_11 = b;                                                                   
  _12 = b.1_11 + 1;                                                             
  b = _12;                                                                      

  <bb 6> :                                                                      
  g.2_13 = g;                                                                   
  if (g.2_13 != 0)                                                              
    goto <bb 5>; [89.00%]                                                       
  else                                                                          
    goto <bb 7>; [11.00%]                                                       

  <bb 7> :                                                                      
  k ={v} {CLOBBER};                                                             
  l ={v} {CLOBBER};                                                             
  h ={v} {CLOBBER};                                                             
  i ={v} {CLOBBER};                                                             
  return;                                                                       

}                                                                               

Not sure why DSE is not optimizing this out.

Reply via email to