This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]