[PATCH v2 00/21] Rewrite plugin code generation

Richard Henderson posted 21 patches 3 weeks, 6 days ago
There is a newer version of this series
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              |   67 +-
include/tcg/helper-info.h          |    3 +
include/tcg/tcg-op-common.h        |    4 +-
include/tcg/tcg-opc.h              |    4 +-
include/tcg/tcg.h                  |   32 +-
include/exec/helper-gen.h.inc      |   24 +-
accel/tcg/plugin-gen.c             | 1007 +++++++---------------------
plugins/api.c                      |   26 +-
plugins/core.c                     |   61 +-
tcg/tcg-op-ldst.c                  |    6 +-
tcg/tcg-op.c                       |    8 +-
tcg/tcg.c                          |   92 ++-
tcg/tci.c                          |    1 +
util/log.c                         |    4 +
19 files changed, 417 insertions(+), 940 deletions(-)
delete mode 100644 accel/tcg/plugin-helpers.h
[PATCH v2 00/21] Rewrite plugin code generation
Posted by Richard Henderson 3 weeks, 6 days ago
Add a (trivial) mechanism for emitting code into the middle of the
opcode sequence: tcg_ctx->emit_before_op.

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.

Changes for v2:
  * Fix TCI build failure.
  * Drop qemu_plugin_insn_cleanup_fn movement; I have another plan for that.

Patches requiring review: 7 and 8.


r~


Richard Henderson (21):
  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: 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              |   67 +-
 include/tcg/helper-info.h          |    3 +
 include/tcg/tcg-op-common.h        |    4 +-
 include/tcg/tcg-opc.h              |    4 +-
 include/tcg/tcg.h                  |   32 +-
 include/exec/helper-gen.h.inc      |   24 +-
 accel/tcg/plugin-gen.c             | 1007 +++++++---------------------
 plugins/api.c                      |   26 +-
 plugins/core.c                     |   61 +-
 tcg/tcg-op-ldst.c                  |    6 +-
 tcg/tcg-op.c                       |    8 +-
 tcg/tcg.c                          |   92 ++-
 tcg/tci.c                          |    1 +
 util/log.c                         |    4 +
 19 files changed, 417 insertions(+), 940 deletions(-)
 delete mode 100644 accel/tcg/plugin-helpers.h

-- 
2.34.1