From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: pierrick.bouvier@linaro.org, alex.bennee@linaro.org
Subject: [PATCH 00/22] plugins: Rewrite plugin code generation
Date: Fri, 15 Mar 2024 15:56:58 -1000 [thread overview]
Message-ID: <20240316015720.3661236-1-richard.henderson@linaro.org> (raw)
As I mooted with Pierrick earlier this week:
(1) Add a (trivial) mechanism for emitting code into
the middle of the opcode sequence: tcg_ctx->emit_before_op.
(2) Rip out all of the "empty" generation and "copy"
to modify those sequences. Replace with regular code
generation once we know what values to place.
There's probably still more cleanup that could be done:
There seems to be a lot of artificial separation between
plugins and the rest of the code base, even between
plugins/api.c and plugins/core.c.
I suspect that all of plugins could be moved into the
build-once buckets.
r~
Richard Henderson (22):
tcg: Add TCGContext.emit_before_op
tcg: Make tcg/helper-info.h self-contained
tcg: Pass function pointer to tcg_gen_call*
plugins: Zero new qemu_plugin_dyn_cb entries
plugins: Move function pointer in qemu_plugin_dyn_cb
plugins: Create TCGHelperInfo for all out-of-line callbacks
plugins: Use emit_before_op for PLUGIN_GEN_AFTER_INSN
plugins: Use emit_before_op for PLUGIN_GEN_FROM_TB
plugins: Add PLUGIN_GEN_AFTER_TB
plugins: Use emit_before_op for PLUGIN_GEN_FROM_INSN
plugins: Use emit_before_op for PLUGIN_GEN_FROM_MEM
plugins: Remove plugin helpers
tcg: Remove TCG_CALL_PLUGIN
tcg: Remove INDEX_op_plugin_cb_{start,end}
plugins: Simplify callback queues
plugins: Introduce PLUGIN_CB_MEM_REGULAR
plugins: Replace pr_ops with a proper debug dump flag
plugins: Split out common cb expanders
plugins: Merge qemu_plugin_tb_insn_get to plugin-gen.c
plugins: Move qemu_plugin_insn_cleanup_fn to tcg.c
plugins: Inline plugin_gen_empty_callback
plugins: Update the documentation block for plugin-gen.c
accel/tcg/plugin-helpers.h | 5 -
include/exec/helper-gen-common.h | 4 -
include/exec/helper-proto-common.h | 4 -
include/exec/plugin-gen.h | 4 -
include/qemu/log.h | 1 +
include/qemu/plugin.h | 79 +--
include/tcg/helper-info.h | 3 +
include/tcg/tcg-op-common.h | 4 +-
include/tcg/tcg-opc.h | 4 +-
include/tcg/tcg.h | 27 +-
include/exec/helper-gen.h.inc | 24 +-
accel/tcg/plugin-gen.c | 1008 +++++++---------------------
plugins/api.c | 26 +-
plugins/core.c | 61 +-
tcg/tcg-op-ldst.c | 6 +-
tcg/tcg-op.c | 8 +-
tcg/tcg.c | 104 ++-
util/log.c | 4 +
18 files changed, 424 insertions(+), 952 deletions(-)
delete mode 100644 accel/tcg/plugin-helpers.h
--
2.34.1
next reply other threads:[~2024-03-16 1:59 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-16 1:56 Richard Henderson [this message]
2024-03-16 1:56 ` [PATCH 01/22] tcg: Add TCGContext.emit_before_op Richard Henderson
2024-03-19 10:55 ` Pierrick Bouvier
2024-03-19 14:04 ` Alex Bennée
2024-03-19 21:23 ` Richard Henderson
2024-03-16 1:57 ` [PATCH 02/22] tcg: Make tcg/helper-info.h self-contained Richard Henderson
2024-03-18 10:01 ` Alex Bennée
2024-03-18 10:03 ` Alex Bennée
2024-03-16 1:57 ` [PATCH 03/22] tcg: Pass function pointer to tcg_gen_call* Richard Henderson
2024-03-18 10:02 ` Alex Bennée
2024-03-16 1:57 ` [PATCH 04/22] plugins: Zero new qemu_plugin_dyn_cb entries Richard Henderson
2024-03-18 10:03 ` Alex Bennée
2024-03-16 1:57 ` [PATCH 05/22] plugins: Move function pointer in qemu_plugin_dyn_cb Richard Henderson
2024-03-18 10:04 ` Alex Bennée
2024-03-19 13:18 ` Pierrick Bouvier
2024-03-19 21:30 ` Richard Henderson
2024-03-20 5:31 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 06/22] plugins: Create TCGHelperInfo for all out-of-line callbacks Richard Henderson
2024-03-19 13:12 ` Pierrick Bouvier
2024-03-19 19:51 ` Richard Henderson
2024-03-20 5:22 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 07/22] plugins: Use emit_before_op for PLUGIN_GEN_AFTER_INSN Richard Henderson
2024-03-19 13:32 ` Pierrick Bouvier
2024-03-19 19:56 ` Richard Henderson
2024-03-20 5:36 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 08/22] plugins: Use emit_before_op for PLUGIN_GEN_FROM_TB Richard Henderson
2024-03-19 13:22 ` Pierrick Bouvier
2024-03-19 19:57 ` Richard Henderson
2024-03-16 1:57 ` [PATCH 09/22] plugins: Add PLUGIN_GEN_AFTER_TB Richard Henderson
2024-03-19 13:33 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 10/22] plugins: Use emit_before_op for PLUGIN_GEN_FROM_INSN Richard Henderson
2024-03-19 13:34 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 11/22] plugins: Use emit_before_op for PLUGIN_GEN_FROM_MEM Richard Henderson
2024-03-19 13:35 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 12/22] plugins: Remove plugin helpers Richard Henderson
2024-03-18 16:38 ` Alex Bennée
2024-03-16 1:57 ` [PATCH 13/22] tcg: Remove TCG_CALL_PLUGIN Richard Henderson
2024-03-19 13:06 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 14/22] tcg: Remove INDEX_op_plugin_cb_{start,end} Richard Henderson
2024-03-19 13:04 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 15/22] plugins: Simplify callback queues Richard Henderson
2024-03-19 13:28 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 16/22] plugins: Introduce PLUGIN_CB_MEM_REGULAR Richard Henderson
2024-03-19 13:28 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 17/22] plugins: Replace pr_ops with a proper debug dump flag Richard Henderson
2024-03-19 12:59 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 18/22] plugins: Split out common cb expanders Richard Henderson
2024-03-19 13:29 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 19/22] plugins: Merge qemu_plugin_tb_insn_get to plugin-gen.c Richard Henderson
2024-03-19 13:30 ` Pierrick Bouvier
2024-03-16 1:57 ` [PATCH 20/22] plugins: Move qemu_plugin_insn_cleanup_fn to tcg.c Richard Henderson
2024-03-18 17:44 ` Alex Bennée
2024-03-16 1:57 ` [PATCH 21/22] plugins: Inline plugin_gen_empty_callback Richard Henderson
2024-03-18 19:09 ` Alex Bennée
2024-03-16 1:57 ` [PATCH 22/22] plugins: Update the documentation block for plugin-gen.c Richard Henderson
2024-03-19 12:56 ` Pierrick Bouvier
2024-03-19 13:38 ` [PATCH 00/22] plugins: Rewrite plugin code generation Pierrick Bouvier
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=20240316015720.3661236-1-richard.henderson@linaro.org \
--to=richard.henderson@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=pierrick.bouvier@linaro.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).