From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:37055) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QMN8G-0003WM-Sf for qemu-devel@nongnu.org; Tue, 17 May 2011 12:28:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QMN8E-0004Yo-Pn for qemu-devel@nongnu.org; Tue, 17 May 2011 12:28:28 -0400 Received: from hall.aurel32.net ([88.191.126.93]:51064) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QMN8E-0004YK-Hq for qemu-devel@nongnu.org; Tue, 17 May 2011 12:28:26 -0400 From: Aurelien Jarno Date: Tue, 17 May 2011 18:28:17 +0200 Message-Id: <1305649700-9078-1-git-send-email-aurelien@aurel32.net> Subject: [Qemu-devel] [PATCH 0/3] TCG: first attempt to reduce host registers usage List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Aurelien Jarno This patch series is a first attempt after the TCG_AREG0 discussion to show it's possible to easily (at least without making huge changes to the TCG core code) spare some registers and avoid a few spills on low register count TCG targets like i386. On i386 hosts some TB are reduced by up to 10%, though the global TB reduction is around 0.5%. The gain is speed is only measurable in user mode with very specific benchmarks: sha1sum of 4GB files is 1.9% +/-0.2% faster. On x86-64 host, some TB are one or two bytes longer, some of them one or two bytes smaller, mainly due to different register usage, which adds or removes some REX prefixes, but overall the size is unchanged. I have a few more ideas to further reduce register spill, I'll try to implement them in the next days/weeks. Aurelien Jarno (3): tcg: replace op_dead_iargs by op_dead_args tcg: mark dead output argument in op_dead_args tcg: don't keep dead outputs in registers tcg/tcg.c | 105 +++++++++++++++++++++++++++++++++++-------------------------- tcg/tcg.h | 4 +- 2 files changed, 62 insertions(+), 47 deletions(-) -- 1.7.2.3