From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: cota@braap.org, "Alex Bennée" <alex.bennee@linaro.org>
Subject: [Qemu-devel] [PATCH v1 0/4] de-macrofy softmmu
Date: Mon, 17 Dec 2018 15:01:12 +0000 [thread overview]
Message-ID: <20181217150116.10446-1-alex.bennee@linaro.org> (raw)
Hi,
This is a re-based re-spin of my RFC series with a few minor updates
thanks to updates to the softmmu code. The series is attempting to
achieve the same results we did with softfloat by replacing our nest of
macro expansions with some common helpers. By using __flatten__ to force
the whole function to be un-rolled the compiler can then dead-code away
parts of the common function not used in each particular instantiated
helper.
This is a win from a debugging point of view - no more "where is
helper_le_lduw_mmu defined" questions. I think it will also make
eventual instrumentation easier because there is exactly one slow path
load and store function to instrument.
Although the individual functions are now bigger (__flatten__ stops the
compiler ignoring inline if it wants to) the size of the resulting
binary is slightly smaller!
original - 73027224 bytes demacro - 66913848 bytes
Unfortunately in my simple boot test I see a slight performance
degradation:
original: 10 times (100.00%), avg time 5.358 (0.02 varience/0.13
deviation) demacro: 10 times (100.00%), avg time 5.760 (0.08
varience/0.29 deviation)
Emilio,
Any chance you could run this through your more comprehensive benchmark
suite?
Alex Bennée (4):
accel/tcg: export some cputlb functions
accel/tcg: introduce softmmu.c
accel/tcg: use TLB helpers from softmmu.o
accel/tcg: remove softmmu_template.h
accel/tcg/Makefile.objs | 1 +
accel/tcg/cputlb.c | 63 +----
accel/tcg/cputlb.h | 21 ++
accel/tcg/softmmu.c | 452 +++++++++++++++++++++++++++++++++++
accel/tcg/softmmu_template.h | 446 ----------------------------------
5 files changed, 485 insertions(+), 498 deletions(-)
create mode 100644 accel/tcg/cputlb.h
create mode 100644 accel/tcg/softmmu.c
delete mode 100644 accel/tcg/softmmu_template.h
--
2.17.1
next reply other threads:[~2018-12-17 15:01 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-17 15:01 Alex Bennée [this message]
2018-12-17 15:01 ` [Qemu-devel] [PATCH v1 1/4] accel/tcg: export some cputlb functions Alex Bennée
2018-12-17 15:01 ` [Qemu-devel] [PATCH v1 2/4] accel/tcg: introduce softmmu.c Alex Bennée
2018-12-17 15:01 ` [Qemu-devel] [PATCH v1 3/4] accel/tcg: use TLB helpers from softmmu.o Alex Bennée
2018-12-17 15:01 ` [Qemu-devel] [PATCH v1 4/4] accel/tcg: remove softmmu_template.h Alex Bennée
2018-12-17 16:15 ` [Qemu-devel] [PATCH v1 0/4] de-macrofy softmmu Alex Bennée
2018-12-17 17:29 ` Alex Bennée
2018-12-17 17:33 ` Emilio G. Cota
2018-12-24 5:21 ` no-reply
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=20181217150116.10446-1-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=cota@braap.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).