From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:52504) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SoWUN-0001cf-Lb for qemu-devel@nongnu.org; Tue, 10 Jul 2012 05:12:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SoWUL-0002HP-Oj for qemu-devel@nongnu.org; Tue, 10 Jul 2012 05:12:11 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:48007) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SoWUL-0002H4-DX for qemu-devel@nongnu.org; Tue, 10 Jul 2012 05:12:09 -0400 Received: from epcpsbgm1.samsung.com (mailout4.samsung.com [203.254.224.34]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0M6X008OWTJPDSP0@mailout4.samsung.com> for qemu-devel@nongnu.org; Tue, 10 Jul 2012 18:11:49 +0900 (KST) Received: from [172.21.111.108] ([182.198.1.3]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0M6X00AU7TJONM20@mmp1.samsung.com> for qemu-devel@nongnu.org; Tue, 10 Jul 2012 18:11:49 +0900 (KST) Date: Tue, 10 Jul 2012 18:12:00 +0900 From: Yeongkyoon Lee In-reply-to: <1341494619-4714-1-git-send-email-yeongkyoon.lee@samsung.com> Message-id: <4FFBF1E0.6050901@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=UTF-8; format=flowed Content-transfer-encoding: QUOTED-PRINTABLE References: <1341494619-4714-1-git-send-email-yeongkyoon.lee@samsung.com> Subject: Re: [Qemu-devel] [RFC][PATCH v2 0/4] tcg: enhance code generation quality for qemu_ld/st IRs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Yeongkyoon Lee Cc: Peter Maydell , e.voevodin@samsung.com, chenwj@iis.sinica.edu.tw, qemu-devel@nongnu.org, laurent.desnogues@gmail.com, afaerber@suse.de On 2012=EB=85=84 07=EC=9B=94 05=EC=9D=BC 22:23, Yeongkyoon Lee wrote: > Summarized feature is as following. > - All the changes are wrapped by macro "CONFIG_QEMU_LDST_OPTIMIZA= TION" and disabled by default. > - They are enabled by "configure --enable-ldst-optimization" and = need CONFIG_SOFTMMU. > - They do not work with CONFIG_TCG_PASS_AREG0 because it looks be= tter apply them after areg0 codes come steady. > - Currently, they support only x86 and x86-64 and have been teste= d with x86 and ARM linux targets on x86/x86-64 host platforms. > - Build test has been done for all targets. I'd like to summarize community's feedbacks/observations and propose = new=20 patch for ldst optimization. * Feedbacks/observations 1. It needs to work with PASS_AREG0 (CONFIG_TCG_PASS_AREG0). 2. It does not need to be configured by user. 3. It looks good for a target to be ldst-optimized on x86/64 hosts no= t=20 optionally. 4. CONFIG_QEMU_LDST_OPTIMIZATION looks necessary because common code= =20 (e.g. tcg.h/tcg.c) is used on-x86 hosts and it should support=20 non-softmmu targets. 5. It might need two versions of MMU helpers, standard and extended,= =20 simultaneously because C code might want to call the standard version= . * Modification proposals 1. Apply ldst optimization also when PASS_AREG0 enabled. 2. Make softmmu targets always to use ldst optimization on x86/64 hos= ts.=20 But testing for many targets is an issue... 3. Make target mem(op) helpers to provide extended MMU helpers and= =20 softmmu_header.h to provide standard MMU helpers. 4. Fix some mistypings and redundant checks. I'm not sure whether my proposals are feasible, however, I'd like to = try=20 them. How do you think about it? > Yeongkyoon Lee (4): > tcg: add declarations and templates of extended MMU helpers > tcg: add extended MMU helpers to softmmu targets > tcg: add optimized TCG qemu_ld/st generation > configure: add CONFIG_QEMU_LDST_OPTIMIZATION for TCG qemu_ld/st > optimization > > configure | 15 ++ > softmmu_defs.h | 13 ++ > softmmu_template.h | 51 +++++-- > target-alpha/mem_helper.c | 22 +++ > target-arm/op_helper.c | 23 +++ > target-cris/op_helper.c | 22 +++ > target-i386/mem_helper.c | 22 +++ > target-lm32/op_helper.c | 23 +++- > target-m68k/op_helper.c | 22 +++ > target-microblaze/op_helper.c | 22 +++ > target-mips/op_helper.c | 22 +++ > target-ppc/mem_helper.c | 22 +++ > target-s390x/op_helper.c | 22 +++ > target-sh4/op_helper.c | 22 +++ > target-sparc/ldst_helper.c | 23 +++ > target-xtensa/op_helper.c | 22 +++ > tcg/i386/tcg-target.c | 328 ++++++++++++++++++++++++++++= +++++++++++++ > tcg/tcg.c | 12 ++ > tcg/tcg.h | 35 +++++ > 19 files changed, 732 insertions(+), 11 deletions(-) >