qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH for-2.4] tcg: correctly mark dead inputs for mov


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [PATCH for-2.4] tcg: correctly mark dead inputs for mov with a constant
Date: Sun, 26 Jul 2015 00:51:00 +0200
User-agent: Mutt/1.5.23 (2014-03-12)

On 2015-07-25 15:06, Richard Henderson wrote:
> On 07/24/2015 04:34 PM, Aurelien Jarno wrote:
> >          ots->val_type = TEMP_VAL_CONST;
> >          ots->val = ts->val;
> >+        if (IS_DEAD_ARG(1)) {
> >+            temp_dead(s, args[1]);
> >+        }
> 
> Aren't we also missing
> 
>   if (NEED_SYNC_ARG(0)) {
>     temp_sync(s, args[0], allocated_regs);
>   }
> 
> along this path?

I don't think so, I guess it's covered by the first part of this
function:

|    if (((NEED_SYNC_ARG(0) || ots->fixed_reg) && ts->val_type != TEMP_VAL_REG)
|        || ts->val_type == TEMP_VAL_MEM) {

It means after this block, a value that need to be synced will always
be in a register, including in the constant case.

> Seems like there's room for cleanup here, at least for 2.5...

I agree we might want to clean a bit the code. It might even go
beyond this function, as we repeatedly have almost the same code in
various places of tcg.c. For example we can imagine a function "move
this temp whatever it is (mem, const, reg) in this register". If we
declare it inline, we can leave the compiler do the few optimizations
we have done.

But indeed that's for 2.5.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
address@hidden                 http://www.aurel32.net



reply via email to

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