Hi Jeff:
     I have already fixed the bug. this occurs due to register
allocation failed in function global_alloc. After calling the
find_reg(), the reg_renumber still keep the value -1 in it. So the
reload() in reload1.c delete the insns.
    I didn't set any call saved registers which means every register
is call used. So allocating register failed when
allocno[num].calls_crossed is larger than 0.
    This is weird in gcc without sending any warning message.

   Anyway, I have to thanks for your guys advice.
   Best Wishes.

                                                           daniel.tian

Reply via email to