From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:44409) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1THIzP-00020F-0t for qemu-devel@nongnu.org; Thu, 27 Sep 2012 14:39:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1THIzN-0005ak-Jj for qemu-devel@nongnu.org; Thu, 27 Sep 2012 14:39:10 -0400 Received: from mail-pa0-f45.google.com ([209.85.220.45]:47936) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1THIzN-0005aT-Dj for qemu-devel@nongnu.org; Thu, 27 Sep 2012 14:39:09 -0400 Received: by padfb10 with SMTP id fb10so1583985pad.4 for ; Thu, 27 Sep 2012 11:39:08 -0700 (PDT) Sender: Richard Henderson Message-ID: <50649D4A.5050004@twiddle.net> Date: Thu, 27 Sep 2012 11:39:06 -0700 From: Richard Henderson MIME-Version: 1.0 References: <1348766113-18373-1-git-send-email-aurelien@aurel32.net> <1348766113-18373-5-git-send-email-aurelien@aurel32.net> In-Reply-To: <1348766113-18373-5-git-send-email-aurelien@aurel32.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 04/13] tcg: sync output arguments on liveness request List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno Cc: qemu-devel@nongnu.org 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 If I understand the patch correctly, this patch alone is no change, since no sync_args bits are ever set. 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 replicated 3-4 times. Subroutine? r~