From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:40703) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOrbC-0000NB-1i for qemu-devel@nongnu.org; Tue, 24 May 2011 09:24:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QOrb8-0005b2-3E for qemu-devel@nongnu.org; Tue, 24 May 2011 09:24:38 -0400 Received: from mail-qw0-f45.google.com ([209.85.216.45]:40864) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOrb8-0005ax-0y for qemu-devel@nongnu.org; Tue, 24 May 2011 09:24:34 -0400 Received: by qwj8 with SMTP id 8so4022831qwj.4 for ; Tue, 24 May 2011 06:24:33 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1306161654-4388-1-git-send-email-batuzovk@ispras.ru> <20110523212241.GB5112@hall.aurel32.net> Date: Tue, 24 May 2011 15:24:33 +0200 Message-ID: From: Laurent Desnogues Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC][PATCH v0 0/8] Improve register allocator List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kirill Batuzov Cc: zhur@ispras.ru, qemu-devel@nongnu.org, Aurelien Jarno On Tue, May 24, 2011 at 1:31 PM, Kirill Batuzov wrote: [...] > Gathered statistics shows some interesting things too. I've run matrix > multiplication benchmark (guest - ARM, host - x86, linux-user mode, with > my patches applied) and here are the results: > > spill count =A0 =A0 =A0 =A0 3916 > =A0real spills =A0 =A0 =A0 32 > =A0spills at bb end =A01023 > =A0spills at call: > =A0 =A0globals =A0 =A0 =A0 =A0 2755 > =A0 =A0iarg passing =A0 =A00 > =A0 =A0call cloobers =A0 106 > > Real spills are spills generated by register allocator when it runs out > of registers. =A0They are less than 1% of all spills. =A0Other tests show > similar behavior. When you write "host x86", do you mean IA32 or x86_64? That might change the number of real spills a lot if you meant x86_64. > I think any further improvements to register allocator without leveling > conventions about saving globals at calls and BB ends somehow is > useless. > > Currently we are looking if we can pass some globals on registers > through basic block boundaries (inside one TB of course). If by "basic block", you mean BB as implied by TCG br for instance, I'm not sure all guests will benefit a lot. If you mean that you intend on putting several guests BB in a single TB then I guess you'll have to first collect dynamic statistics before dynamically switching to grouping BB. Laurent