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