Hi,
>
> DF is supposed to be out of the game at this point, it has handed over the
> control since global.c:build_insn_chain as far as liveness info is concerned.
Oh I used DF and it worked for me. But I think that is because this is
the first new instruction to be inserted and nothing really must
On Thu, Nov 08, 2007 at 09:52:27PM +0100, Eric Botcazou wrote:
> > This doesnt happen because while inserting the caller save insn, its
> > live_throughout is simply set to the live_throughout of the call insn
> > + the registers marked with REG_DEAD notes in the call insn.
>
> Ouch. Relying on R
> This doesnt happen because while inserting the caller save insn, its
> live_throughout is simply set to the live_throughout of the call insn
> + the registers marked with REG_DEAD notes in the call insn.
Ouch. Relying on REG_DEAD notes to get complete liveness info is a no-no:
/* The value in
Hi,
> > (call_insn:HI 91 270 92 5 cor_h.c:129 (parallel [
> >(set (reg:SI 1 $c1)
> >(call (mem:SI (symbol_ref:SI
> > ("DotProductWithoutShift") [flags 0x41] > DotProductWithoutShift>) [0 S4 A32])
> >(const_int 0 [0x0])))
> >(use (const_i
> Also, just to confirm if I am on the right track, shouldnt the bit for
> reg #1 (i.e $c1) be set in live_throughout in the insn chain for
> insn #91 ( reproduced below for convenience ) ?
>
> (call_insn:HI 91 270 92 5 cor_h.c:129 (parallel [
>(set (reg:SI 1 $c1)
>(c
> OK. AFAICS there is nothing glaring in the RTL you posted so you'll have to
> put a watchpoint and find out who has set reg_rtx for this particular reload.
reg_rtx gets set due to a call to choose_reload_regs which in turn
calls allocate_reload_reg to set reg_rtx.
Also, just to confirm if I am
> Oh, I am using quite a new version of the compiler - rev 129547,
> DATESTAMP 20071022.
OK. AFAICS there is nothing glaring in the RTL you posted so you'll have to
put a watchpoint and find out who has set reg_rtx for this particular reload.
--
Eric Botcazou
Hi Eric,
Thanks for the response
> Of course, it goes to great length to do so but there can be bugs. You didn't
> specify which version of the compiler you're using though; they may have been
> already fixed on the mainline.
Oh, I am using quite a new version of the compiler - rev 129547,
DATES
> The file.c.176r.greg for insn 309 says
>
> "Spilling for insn 309.
> Using reg 6 for reload 0"
>
> and indeed rld[0].regno is 6 and rld[0].in is
>
> (plus:SI (reg/f:SI 29 $sp)
> (const_int 176 [0xb0]))
>
> However the function choose_reload_regs chooses $c1 for this reload
> and sets rld[0].r
Hi,
Working on a private port I am seeing a problem with reload clobbering
a live register and thus causing havoc.
Consider the following snippet of the code dump.
(note:HI 85 84 86 5 [bb 5] NOTE_INSN_BASIC_BLOCK)
(note:HI 86 85 89 5 NOTE_INSN_DELETED)
(insn:HI 89 86 87 5 cor_h.c:129 (set (reg:S
10 matches
Mail list logo