From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:37650) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TQACa-00009S-GR for qemu-devel@nongnu.org; Mon, 22 Oct 2012 01:05:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TQACZ-0002CL-Bn for qemu-devel@nongnu.org; Mon, 22 Oct 2012 01:05:24 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:62060) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TQACZ-0002CB-5F for qemu-devel@nongnu.org; Mon, 22 Oct 2012 01:05:23 -0400 Received: from eusync1.samsung.com (mailout3.w1.samsung.com [210.118.77.13]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MCA004Y83HONH30@mailout3.w1.samsung.com> for qemu-devel@nongnu.org; Mon, 22 Oct 2012 06:05:48 +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 <0MCA0011B3GVZA00@eusync1.samsung.com> for qemu-devel@nongnu.org; Mon, 22 Oct 2012 06:05:20 +0100 (BST) Message-id: <5084D40E.3050503@samsung.com> Date: Mon, 22 Oct 2012 09:05:18 +0400 From: Evgeny Voevodin MIME-version: 1.0 References: <1350650560-5362-1-git-send-email-e.voevodin@samsung.com> <5084C02E.20502@samsung.com> In-reply-to: <5084C02E.20502@samsung.com> 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: , Cc: qemu-devel@nongnu.org, Blue Swirl , kyungmin.park@samsung.com, edgar.iglesias@gmail.com, aurelien@aurel32.net, rth@twiddle.net On 10/22/2012 07:40 AM, Evgeny Voevodin wrote: > 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; Oh, I just found out that we don't have an access to CPUArchState form tcg-op.h, so we can't get rid of usage of global variable here until we change interfaces to all functions... > > >> >>> 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