On 09/27/2012 10:15 AM, Aurelien Jarno wrote:
> Rework the liveness analysis by tracking temps that need to go back to
> memory in addition to dead temps tracking. This allows to mark output
> arguments as "need sync", and to synchronize them back to memory as soon
> as they are not written anymore. This way even arguments mapping to
> globals can be marked as "dead", avoiding moves to a new register when
> input and outputs are aliased.
> 
> In addition it means that registers are freed as soon as temps are not
> used anymore, instead of waiting for a basic block end or an op with side
> effects. This reduces register spilling especially on CPUs with few
> registers, and spread the mov over all the TB, increasing the
> performances on in-order CPUs.
> 
> Signed-off-by: Aurelien Jarno <[email protected]>
> ---
>  tcg/tcg.c |   64 
> +++++++++++++++++++++++++++++++++++--------------------------
>  1 file changed, 37 insertions(+), 27 deletions(-)

Reviewed-by: Richard Henderson <[email protected]>


r~

Reply via email to