This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: haifa life change
On Wed, Oct 13, 1999 at 11:19:37PM +0200, Franz Sirl wrote:
> 2218770434==0x843FC002
> 2218774530==0x843FD002
>
> This seems to be r12 missing in new_live_at_start. Further inspection showed
> that the bit is deleted in propagate_block due to this insn:
>
> (gdb) p debug_rtx(insn)
> (call_insn:TI 567 565 3188 (parallel[
> (call (mem:SI (symbol_ref:SI ("pedwarn")) 0)
> (const_int 0 [0x0]))
Hmm. This is correct -- r12 is call-clobbered, therefore it
cannot be live across the call. So new_live_at_start is right
and the previous value we calculated in flow2 is wrong.
Yet it is the same code doing the calculation -- that was the
whole point of the patch. What changed? Why didn't flow2
decide that r12 is dead?
> While I was looking at this, I noticed a possible bug in bitmap.h.
> bitmap->bitmap_elem->bits is used to store a register map and is sized
> 2 words. But on PPC 3 words are needed to store the full map...
The bitmap code will allocate extra nodes as needed.
See bitmap->first->next->bits in that case.
r~