From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:38284) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QNlax-0001Au-MO for qemu-devel@nongnu.org; Sat, 21 May 2011 08:47:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QNlaw-0001z5-Em for qemu-devel@nongnu.org; Sat, 21 May 2011 08:47:51 -0400 Received: from smtp.ispras.ru ([83.149.198.202]:58939) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QNlaw-0001yk-8J for qemu-devel@nongnu.org; Sat, 21 May 2011 08:47:50 -0400 Message-ID: <4DD7B469.1040802@ispras.ru> Date: Sat, 21 May 2011 16:47:37 +0400 From: Dmitry Zhurikhin MIME-Version: 1.0 References: <20110520193508.GB27170@hall.aurel32.net> In-Reply-To: <20110520193508.GB27170@hall.aurel32.net> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/6] Implement constant folding and copy propagation in TCG List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno Cc: mj.mccormack@samsung.com, qemu-devel@nongnu.org, Kirill Batuzov On 05/20/2011 11:35 PM, Aurelien Jarno wrote: > > On Fri, May 20, 2011 at 04:39:27PM +0400, Kirill Batuzov wrote: >> This series implements some basic machine-independent optimizations. They >> simplify code and allow liveness analysis do it's work better. >> >> Suppose we have following ARM code: >> >> movw r12, #0xb6db >> movt r12, #0xdb6d >> >> In TCG before optimizations we'll have: >> >> movi_i32 tmp8,$0xb6db >> mov_i32 r12,tmp8 >> mov_i32 tmp8,r12 >> ext16u_i32 tmp8,tmp8 >> movi_i32 tmp9,$0xdb6d0000 >> or_i32 tmp8,tmp8,tmp9 >> mov_i32 r12,tmp8 >> >> And after optimizations we'll have this: >> >> movi_i32 r12,$0xdb6db6db >> >> Here are performance evaluation results on SPEC CPU2000 integer tests in >> user-mode emulation on x86_64 host. There were 5 runs of each test on >> reference data set. The tables below show runtime in seconds for all these >> runs. > > How are the tests done? Are they done with linux-user, or running the > executables in qemu-system-xxx? They were run in user mode on a dedicated machine not doing anything else. We found system emulation to be too volatile for measuring anything. Anyway even with user mode and on a dedicated machine there are some weird performance jumps we can't explain but overall SPEC seems stable enough to notice influence of such changes in code generation. > >> ... Dmitry