From: Aurelien Jarno <aurelien@aurel32.net>
To: Artyom Tarasenko <atar4qemu@gmail.com>
Cc: qemu-devel <qemu-devel@nongnu.org>, Dennis Luehring <dl.soluz@gmx.net>
Subject: Re: [Qemu-devel] Debian 7.8.0 SPARC64 on qemu - anything i can do to speedup the emulation?
Date: Mon, 3 Aug 2015 11:17:16 +0200 [thread overview]
Message-ID: <20150803091716.GF30591@aurel32.net> (raw)
In-Reply-To: <CACXAS8CLVt_0rQCLWmYp=YhL1PJyVLGAxyvQB27Cm6rM+MTGWg@mail.gmail.com>
On 2015-08-03 10:31, Artyom Tarasenko wrote:
> Hi Aurelien,
>
> On Fri, Jul 31, 2015 at 5:43 PM, Aurelien Jarno <aurelien@aurel32.net> wrote:
>
> >> > It uses a lot of integer functions
> >> > based on CPU flags, so most of the time is spent computing them in
> >> > helper_compute_psr.
> >>
> >> I wonder if this can be optimized. I guess most RISC CPUs would have a
> >> similar problem. Unlike x86, the compilers usually optimize
> >> instructions on flag usage. If there is an instruction modifying flags
> >> in a code, the flags will be used for sure, so it probably makes a
> >> little sense to pospone the flag computation?
> >
> > Indeed. ARM and SH4 use one TCG temp per flag, and they can be computed
> > one by one using setcond. The optimizer and the liveness analysis then
> > get rid of the unused computation. However while it allows intra-TB
> > optimization, it prevent any other flags optimization. Therefore the
> > only way to know if it is a good idea or not is to implement it and
> > benchmark that, but using a bit more than a single biased benchmark like
> > the one from sysbench.
> >
> > Also note that the current implementation predates the introduction of
> > setcond, which is necessary to be able to compute the flags using TCG
> > code.
>
> Thanks for explaining it, the problem is much more clear now.
> Moving to setcond is definitely worth a shot. I'd like to play with it.
> What would be the minimal entity to change without reworking the complete TCG:
> a) one flag for one instruction,
> b) all flags for one instruction,
> c) one flag for all instructions,
> or d) all flags for all instructions (gradually moving to setcond is
> not possible) ?
You should with the c) option. You can look at how I done this for SH4,
starting with commit 5ed9a259c164bb9fd2a6fe8a363a4bda2e4a5461.
Aurelien
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@aurel32.net http://www.aurel32.net
next prev parent reply other threads:[~2015-08-03 9:17 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-28 7:52 [Qemu-devel] Debian 7.8.0 SPARC64 on qemu - anything i can do to speedup the emulation? Dennis Luehring
2015-07-28 9:54 ` Artyom Tarasenko
2015-07-29 6:20 ` Dennis Luehring
2015-07-29 8:23 ` Artyom Tarasenko
2015-07-29 15:01 ` Aurelien Jarno
2015-07-30 3:52 ` Dennis Luehring
2015-07-30 7:52 ` Aurelien Jarno
2015-07-30 8:16 ` Dennis Luehring
2015-07-30 8:42 ` Artyom Tarasenko
2015-07-30 8:55 ` Aurelien Jarno
2015-07-30 9:35 ` Artyom Tarasenko
2015-07-30 10:09 ` Aurelien Jarno
2015-07-30 18:21 ` Dennis Luehring
2015-07-30 15:50 ` Aurelien Jarno
2015-07-31 15:31 ` Artyom Tarasenko
2015-07-31 15:43 ` Aurelien Jarno
2015-08-02 13:11 ` Mark Cave-Ayland
2015-08-03 8:31 ` Artyom Tarasenko
2015-08-03 9:17 ` Aurelien Jarno [this message]
2015-08-18 9:24 ` Artyom Tarasenko
2015-08-18 17:55 ` Richard Henderson
2015-08-19 10:41 ` Artyom Tarasenko
2015-08-19 11:00 ` Aurelien Jarno
2015-08-19 14:41 ` Artyom Tarasenko
2015-08-20 5:22 ` Dennis Luehring
2015-08-20 10:40 ` Artyom Tarasenko
2015-08-20 17:19 ` Richard Henderson
2015-08-21 4:32 ` Dennis Luehring
2015-08-21 5:49 ` Richard Henderson
2015-08-21 6:05 ` Dennis Luehring
2015-08-21 15:47 ` Richard Henderson
2015-08-21 16:13 ` Aurelien Jarno
2015-08-21 16:41 ` Dennis Luehring
2015-08-22 16:45 ` Artyom Tarasenko
2015-08-22 17:47 ` Dennis Luehring
2015-08-22 18:53 ` Artyom Tarasenko
2015-08-23 12:11 ` Dennis Luehring
2015-08-23 0:41 ` Richard Henderson
2015-08-26 16:17 ` Artyom Tarasenko
2015-08-26 19:47 ` Richard Henderson
2015-08-27 5:54 ` Dennis Luehring
2015-08-27 15:04 ` Richard Henderson
2015-08-27 15:58 ` Artyom Tarasenko
2015-08-17 11:32 ` Dennis Luehring
2015-08-03 7:58 ` Dennis Luehring
2015-08-03 14:51 ` Dennis Luehring
2015-08-03 15:59 ` Karel Gardas
2015-08-03 19:51 ` Dennis Luehring
2015-08-06 9:00 ` Karel Gardas
2015-08-06 9:21 ` Dennis Luehring
2015-08-06 9:27 ` Dennis Luehring
2015-08-06 12:50 ` Karel Gardas
2015-08-06 16:35 ` Dennis Luehring
2015-08-18 4:25 ` Dennis Luehring
2015-08-18 8:19 ` Aurelien Jarno
2015-08-18 10:39 ` Dennis Luehring
2015-08-18 11:21 ` Dennis Luehring
[not found] ` <CAMO55fkcW1eOaZSz2MJgqZEP29pTuHvTLe0Kna5eHYfg7cFyPA@mail.gmail.com>
2015-08-19 4:28 ` Dennis Luehring
2015-07-29 8:07 ` Dennis Luehring
2015-07-29 15:03 ` Aurelien Jarno
2015-07-29 9:17 ` Karel Gardas
2015-07-29 10:20 ` Dennis Luehring
2015-07-29 13:45 ` Karel Gardas
2015-07-29 15:13 ` Aurelien Jarno
2015-07-29 10:55 ` Dennis Luehring
2015-07-29 12:34 ` Karel Gardas
2015-07-29 12:38 ` Karel Gardas
2015-07-29 13:55 ` Dennis Luehring
2015-07-29 14:41 ` Karel Gardas
2015-07-30 3:47 ` Dennis Luehring
2015-07-30 7:12 ` Paolo Bonzini
2015-07-30 8:31 ` Artyom Tarasenko
2015-08-02 19:12 ` Alex Bennée
2015-07-30 7:55 ` Aurelien Jarno
2015-08-17 14:19 ` Artyom Tarasenko
2015-08-17 15:40 ` Richard Henderson
2015-08-17 16:25 ` Artyom Tarasenko
2015-08-17 21:08 ` Aurelien Jarno
2015-08-27 15:29 ` Artyom Tarasenko
2015-09-02 4:34 ` Dennis Luehring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150803091716.GF30591@aurel32.net \
--to=aurelien@aurel32.net \
--cc=atar4qemu@gmail.com \
--cc=dl.soluz@gmx.net \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.