------- Additional Comments From dpatel at apple dot com  2004-11-18 02:26 
-------
After I update tree-level if-conversion to force gimple operands appropriately, 
rewrite_out_of_ssa() is 
converting following ...

bar()                                                                           
                                                          
{                                                                               
                                                            
  _Bool _ifc_.3;                                                                
                                                            
  _Bool _ifc_.2;                                                                
                                                            
  _Bool D.1339;                                                                 
                                                            
  _Bool D.1336;                                                                 
                                                            
  _Bool D.1337;                                                                 
                                                            
  _Bool D.1338;                                                                 
                                                            
  _Bool _ifc_.1;                                                                
                                                            
  unsigned int ivtmp.0;                                                         
                                                            
  int k;                                                                        
                                                            
  int j;                                                                        
                                                            
  int i;                                                                        
                                                            
                                                                                
                                                            
  # BLOCK 0                                                                     
                                                            
  # PRED: ENTRY [100.0%]  (fallthru,exec)                                       
                                                            
  k_21 = j_6 != 0 ? 2 : 0;                                                      
                                                            
  k_5 = j_6 == 0 ? k_21 : 2;                                                    
                                                            
  if (k_5 != 0) goto <L5>; else goto <L6>;                                      
                                                            
  # SUCC: 1 [46.5%]  (true,exec) 2 [53.5%]  (false,exec)                        
                                                            
                                                                                
                                                            
  # BLOCK 1                                                                     
                                                            
  # PRED: 0 [46.5%]  (true,exec)                                                
                                                            
<L5>:;                                                                          
                                                            
  #   .GLOBAL_VAR_10 = V_MAY_DEF <.GLOBAL_VAR_9>;                               
                                                            
  foo () [tail call];                                                           
                                                            
  # SUCC: 2 [100.0%]  (fallthru,exec)                                           
                                                            
                                                                                
                                                            
  # BLOCK 2                                                                     
                                                            
  # PRED: 0 [53.5%]  (false,exec) 1 [100.0%]  (fallthru,exec)                   
                                                            
<L6>:;                                                                          
                                                            
  return;                                                                       
                                                            
  # SUCC: EXIT [100.0%]                                                         
                                                            
                                                                                
                                                            
}                                                                               
                                                            
                                                                                
                                                            

into ...

bar ()                                                                          
                                                            
{                                                                               
                                                            
  int k.17;                                                                     
                                                            
  _Bool _ifc_.3;                                                                
                                                            
  _Bool _ifc_.2;                                                                
                                                            
  _Bool D.1339;                                                                 
                                                            
  _Bool D.1336;                                                                 
                                                            
  _Bool D.1337;                                                                 
                                                            
  _Bool D.1338;                                                                 
                                                            
  _Bool _ifc_.1;                                                                
                                                            
  unsigned int ivtmp.0;                                                         
                                                            
  int k;                                                                        
                                                            
  int j;                                                                        
                                                            
  int i;                                                                        
                                                            
                                                                                
                                                            
  # BLOCK 0                                                                     
                                                            
  # PRED: ENTRY [100.0%]  (fallthru,exec)                                       
                                                            
  if ((j == 0 ? j != 0 ? 2 : 0 : 2) != 0) goto <L5>; else goto <L6>;            
                                                            
  # SUCC: 1 [46.5%]  (true,exec) 2 [53.5%]  (false,exec)                        
                                                            
                                                                                
                                                            
  # BLOCK 1                                                                     
                                                            
  # PRED: 0 [46.5%]  (true,exec)                                                
                                                            
<L5>:;                                                                          
                                                            
  #   .GLOBAL_VAR_10 = V_MAY_DEF <.GLOBAL_VAR_9>;                               
                                                            
  foo () [tail call];                                                           
                                                            
  # SUCC: 2 [100.0%]  (fallthru,exec)                                           
                                                            
                                                                                
                                                            
  # BLOCK 2                                                                     
                                                            
  # PRED: 0 [53.5%]  (false,exec) 1 [100.0%]  (fallthru,exec)                   
                                                            
<L6>:;                                                                          
                                                            
  return;                                                                       
                                                            
  # SUCC: EXIT [100.0%]                                                         
                                                            
                                                                                
                                                            
}

                                                  

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18308

Reply via email to