From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59169) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TQ8sd-0006YQ-4M for qemu-devel@nongnu.org; Sun, 21 Oct 2012 23:40:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TQ8sb-0000gD-R4 for qemu-devel@nongnu.org; Sun, 21 Oct 2012 23:40:43 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:55981) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TQ8sb-0000Xi-La for qemu-devel@nongnu.org; Sun, 21 Oct 2012 23:40:41 -0400 Received: from eusync1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by mailout2.w1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MC9001QYZK2O830@mailout2.w1.samsung.com> for qemu-devel@nongnu.org; Mon, 22 Oct 2012 04:40:50 +0100 (BST) Received: from [106.109.8.9] by eusync1.samsung.com (Oracle Communications Messaging Server 7u4-23.01(7.0.4.23.0) 64bit (built Aug 10 2011)) with ESMTPA id <0MC900JTWZJJMG50@eusync1.samsung.com> for qemu-devel@nongnu.org; Mon, 22 Oct 2012 04:40:32 +0100 (BST) Message-id: <5084C02E.20502@samsung.com> Date: Mon, 22 Oct 2012 07:40:30 +0400 From: Evgeny Voevodin MIME-version: 1.0 References: <1350650560-5362-1-git-send-email-e.voevodin@samsung.com> In-reply-to: Content-type: text/plain; charset=UTF-8; format=flowed Content-transfer-encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/6] *** TCG global variables clean-up *** List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: qemu-devel@nongnu.org, kyungmin.park@samsung.com, edgar.iglesias@gmail.com, aurelien@aurel32.net, rth@twiddle.net On 10/19/2012 09:55 PM, Blue Swirl wrote: > On Fri, Oct 19, 2012 at 12:42 PM, Evgeny wrote: >> This set of patches moves global variables to tcg_ctx: >> gen_opc_ptr >> gen_opparam_ptr >> gen_opc_buf >> gen_opparam_buf >> >> Where it was possible I used s->... >> Where we don't have an interface to pass a pointer to tcg_ctx, I used tcg_ctx.xxx >> since it is a global variable too. > Maybe a pointer should be added so that the references become > tcg_ctx_ptr->xxx. This would incur unnecessary pointer dereference > penalties though. I thought about usage of TCGContext * tcg_cur_ctx, but I decided that we don't need this until we want to use multiple TCG contexts. If we would like to introduce such a pointer, then I'd prefer to hold it in CPUArchState inside CPU_COMMON and initialize it in qemu_tcg_cpu_thread_fn for each CPU: env->tcg_cur_ctx = &tcg_ctx; > >> Build tested for all targets. >> Execution tested on ARM. >> >> I didn't notice any slow-down of kernel boot after this set was applied. >> >> Evgeny (6): >> tcg/tcg.h: Duplicate global TCG variables in TCGContext >> TCG: Use gen_opc_ptr from context instead of global variable. >> TCG: Use gen_opparam_ptr from context instead of global variable. >> TCG: Use gen_opc_buf from context instead of global variable. >> TCG: Use gen_opparam_buf from context instead of global variable. >> TCG: Remove unused global variables >> >> gen-icount.h | 2 +- >> target-alpha/translate.c | 10 +- >> target-arm/translate.c | 12 +- >> target-cris/translate.c | 12 +- >> target-i386/translate.c | 12 +- >> target-lm32/translate.c | 12 +- >> target-m68k/translate.c | 10 +- >> target-microblaze/translate.c | 12 +- >> target-mips/translate.c | 10 +- >> target-openrisc/translate.c | 12 +- >> target-ppc/translate.c | 10 +- >> target-s390x/translate.c | 10 +- >> target-sh4/translate.c | 10 +- >> target-sparc/translate.c | 10 +- >> target-unicore32/translate.c | 12 +- >> target-xtensa/translate.c | 8 +- >> tcg/optimize.c | 62 ++++---- >> tcg/tcg-op.h | 324 ++++++++++++++++++++--------------------- >> tcg/tcg.c | 84 +++++------ >> tcg/tcg.h | 10 +- >> translate-all.c | 3 - >> 21 files changed, 321 insertions(+), 326 deletions(-) >> >> -- >> 1.7.9.5 >> -- Kind regards, Evgeny Voevodin, Technical Leader, Mobile Group, Samsung Moscow Research Center, e-mail: e.voevodin@samsung.com