[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 04/13] tcg: sync output arguments on liveness re
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH 04/13] tcg: sync output arguments on liveness request |
Date: |
Thu, 27 Sep 2012 22:05:57 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Sep 27, 2012 at 11:39:06AM -0700, Richard Henderson wrote:
> On 09/27/2012 10:15 AM, Aurelien Jarno wrote:
> > Synchronize an output argument when requested by the liveness analysis.
> > This is needed so that the temp can be declared dead later.
> >
> > For that, add a new op_sync_args table in which each bit tells if the
> > corresponding output argument needs to be synchronized with the memory.
> > Pass it to the tcg_reg_alloc_* functions, and honor this bit. We need to
> > synchronize the argument before marking it as dead, and we have to make
> > sure all the infos about the temp are correctly filled.
> >
> > At the same time change some types from unsigned int to uint16_t when
> > passing op_dead_args.
> >
> > Signed-off-by: Aurelien Jarno <address@hidden>
>
> If I understand the patch correctly, this patch alone is no change,
> since no sync_args bits are ever set.
They are set later in this series, this is a preparatory work.
> Which means that
>
> > + if (NEED_SYNC_ARG(i)) {
> > + tcg_reg_sync(s, reg);
> > + }
> > + if (IS_DEAD_ARG(i)) {
> > + temp_dead(s, args[i]);
> > + }
>
> Might ought to be better written as
>
> if (IS_DEAD_ARG(i)) {
> ...
> } else if (NEED_SYNC_ARG(i)) {
> ...
> }
>
> as temp_dead implies sync from patches 2 and 3. This pattern is also
No temp_dead doesn't imply sync. temp_dead is only marking the temp as
dead, it doesn' save it.
> replicated 3-4 times. Subroutine?
>
Replicated in this patch, but only 2 are left at the end.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net
- [Qemu-devel] [PATCH 10/13] tcg: don't explicitely save globals and temps, (continued)
[Qemu-devel] [PATCH 06/13] tcg: improve tcg_reg_alloc_movi(), Aurelien Jarno, 2012/09/27
[Qemu-devel] [PATCH 02/13] tcg: add tcg_reg_sync(), Aurelien Jarno, 2012/09/27
[Qemu-devel] [PATCH 03/13] tcg: add temp_sync(), Aurelien Jarno, 2012/09/27