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

--- Comment #5 from Hongtao.liu <crazylht at gmail dot com> ---
all_hard_regs_bitmap didn't has 68(k0).

first = 0x37fd100 current = 0x37fd100 indx = 0                                  
        0x37fd100 next = (nil) prev = (nil) indx = 0                            
                bits = { 0 1 2 3 4 5 6 7 8 9 10 11                              
                         12 13 14 15 16 17 18 19 20 21 22 23                    
                         24 25 26 27 28 29 30 31 32 33 34 35                    
                         36 37 38 39 40 41 42 43 44 45 46 47                    
                         48 49 50 51 52 53 54 55 56 57 58 59                    
                         60 61 62 63 64 65 66 67 69 70 71 72                    
                         73 74 75 }


it's cleared by 


      /* As we did not change CFG since LRA start we can use                    
         DF-infrastructure solver to solve live data flow problem.  */          
      for (int i = 0; HARD_REGISTER_NUM_P (i); ++i)                             
        {                                                                       
          if (TEST_HARD_REG_BIT (hard_regs_spilled_into, i))                    
=>          bitmap_clear_bit (&all_hard_regs_bitmap, i);                        
        }


Breakpoint 32, lra_create_live_ranges_1 (all_p=true, dead_insn_p=false) at
../../../gnu-toolchain/gcc/gcc/lra-lives.c:1396                                 
1396                bitmap_clear_bit (&all_hard_regs_bitmap, i);                
(gdb) p i                                                                       
$200 = 68                                                                       
(gdb) p hard_regs_spilled_into                                                  
$201 = {elts = {0, 16}}                                                         
(gdb) p i                                                                       
$202 = 68

Reply via email to