From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40264) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YNN9n-0002Jn-96 for qemu-devel@nongnu.org; Mon, 16 Feb 2015 10:00:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YNN9h-0002Yd-3O for qemu-devel@nongnu.org; Mon, 16 Feb 2015 10:00:19 -0500 Received: from mail.uni-paderborn.de ([131.234.142.9]:55675) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YNN9g-0002YB-TB for qemu-devel@nongnu.org; Mon, 16 Feb 2015 10:00:13 -0500 Message-ID: <54E21459.3050404@mail.uni-paderborn.de> Date: Mon, 16 Feb 2015 16:01:29 +0000 From: Bastian Koppelmann MIME-Version: 1.0 References: <1423883536-6809-1-git-send-email-rth@twiddle.net> In-Reply-To: <1423883536-6809-1-git-send-email-rth@twiddle.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/5] Use tcg_malloc more List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson , qemu-devel@nongnu.org Cc: peter.maydell@linaro.org On 02/14/2015 03:12 AM, Richard Henderson wrote: > We have several statically sized arrays attached to the TCGContext > structure. For the most part, these arrays are sized unreasonably > large -- there are rarely more than 3 labels in a TB, or more than > a few dozen memory operations. > > We already have tcg_malloc, which manages a pooled allocator attached > to the TCGContext. We can easily use this to dynamically allocate > both of the structures mentioned above. This both minimizes the memory > that we do use, and also eliminates some arbitrary limits. > > In order to convert TCGLabel, we need to stop referencing them via > indicies in an array and instead manipulate them via pointers. This > is mechanical but pervasive, touching all front ends and all back ends. > > > r~ > > > Richard Henderson (5): > tcg: Use tcg_malloc to allocate TCGLabelQemuLdst > tcg-ia64: Use tcg_malloc to allocate TCGLabelQemuLdst > tcg: Change translator-side labels to a pointer > tcg: Change generator-side labels to a pointer > tcg: Use tcg_malloc to allocate TCGLabel > > include/exec/gen-icount.h | 4 +- > target-alpha/translate.c | 4 +- > target-arm/translate-a64.c | 26 ++++----- > target-arm/translate.c | 8 +-- > target-arm/translate.h | 4 +- > target-cris/translate.c | 23 +++----- > target-cris/translate_v10.c | 6 +-- > target-i386/translate.c | 33 ++++++------ > target-lm32/translate.c | 20 ++++--- > target-m68k/translate.c | 8 +-- > target-microblaze/translate.c | 12 ++--- > target-mips/translate.c | 94 ++++++++++++++++---------------- > target-moxie/translate.c | 2 +- > target-openrisc/translate.c | 34 ++++++------ > target-ppc/translate.c | 123 ++++++++++++++++++++---------------------- > target-s390x/translate.c | 7 +-- > target-sh4/translate.c | 22 ++++---- > target-sparc/translate.c | 11 ++-- > target-tricore/translate.c | 6 +-- > target-unicore32/translate.c | 6 +-- > target-xtensa/translate.c | 18 +++---- > tcg/aarch64/tcg-target.c | 15 +++--- > tcg/arm/tcg-target.c | 14 ++--- > tcg/i386/tcg-target.c | 72 ++++++++++++------------- > tcg/ia64/tcg-target.c | 35 ++++++------ > tcg/mips/tcg-target.c | 17 +++--- > tcg/ppc/tcg-target.c | 20 ++++--- > tcg/s390/tcg-target.c | 31 +++++------ > tcg/sparc/tcg-target.c | 22 ++++---- > tcg/tcg-be-ldst.h | 26 +++++---- > tcg/tcg-op.c | 25 ++++----- > tcg/tcg-op.h | 19 +++---- > tcg/tcg.c | 45 ++++++++-------- > tcg/tcg.h | 34 ++++++++++-- > tcg/tci/tcg-target.c | 13 +++-- > 35 files changed, 417 insertions(+), 442 deletions(-) > Reviewed-by: Bastian Koppelmann Nicely done. This makes me wonder, if it's worth it to remove the hard limit for tcg temps too. Cheers, Bastian