This is the mail archive of the gcc@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]
Other format: [Raw text]

Re: Question on fixup_abnormal_edges


Hi,

On Tue, 1 Oct 2002, Olivier Hainque wrote:

> Jan Hubicka wrote:
> > There is another problem when I think about that - there should not be
> > live register accross REG_NORETURN note and thus no caller save need.
> > Do you have any idea why the register is alive?
>
>  The .life dump reads several times like below
>
> (call_insn 1707 1706 1708 (parallel[
>             (call (mem:DI (symbol_ref:DI ("_Unwind_Resume")) [0 S8 A64])
> ...
> ;; End of basic block 175, registers live:
>  29 [$29] 30 [$30] 31 [AP] 63 [FP]

Ok, no $22 here.  So either the caller-save code should take the current
liveness into account before emitting loads/stores around calls (which I'm
not sure it is able to, considering non-optimizing compilation) or not
emit loads after non-return calls at all (and stores are probably useless
to, except maybe for unwinding the stack).


Ciao,
Michael.


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