[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Lightning] Example with putarg

From: Paulo César Pereira de Andrade
Subject: Re: [Lightning] Example with putarg
Date: Tue, 3 Oct 2017 14:41:42 -0400

2017-10-03 9:09 GMT-04:00 Marc Nieper-Wißkirchen <address@hidden>:
> Paulo César Pereira de Andrade <address@hidden>
> schrieb am Mi., 13. Sep. 2017 um 22:29 Uhr:
>>   Actually, I believe there is nothing wrong. But likely there is some
>> misinterpretation of what happens when there is a jump to a register
>> or an indirect jump to an absolute address (not a jit_label_t*), or, what
>> lightning consider as live range or how it computes it.
> Okay, I have understood why lightning cannot assume that any register is
> live at a (register) indirect jump. Maybe you could add a sentence to the
> manual saying which registers are preserved across an indirect jump.

  I will review the documentation. Should have a note about it.

> As a feature request, I would suggest to add primitives that mark registers
> as live (say, just before a jump) or as dead.

  All callee save registers are considered live on an indirect jump. This
might cause significant pressure on code before the indirect jump.
  There is jit_live() that tells a register is live at some point, so, calling
jit_live() just before the indirect jump will prevent it from being used as
a temporary from where it is treated as live up to the jump.
  Registers are treated as live when there is some operation that reads
the register value. And dead from last value used (or from prolog if not
an argument register) up to a value change.

> Marc


reply via email to

[Prev in Thread] Current Thread [Next in Thread]