From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: cota@braap.org, f4bug@amsat.org, pbonzini@redhat.com
Subject: [Qemu-devel] [PATCH v7 00/52] tcg queued patches
Date: Fri, 20 Oct 2017 16:19:31 -0700 [thread overview]
Message-ID: <20171020232023.15010-1-richard.henderson@linaro.org> (raw)
A bit silly to keep calling this "tb_lock removal", since it
doesn't quite, and it has accumulated several additional patches.
Changes since v6:
* Dropped unnecessary rename of "temps". (Patch 13)
* Changed how I avoid 0 as a TCGv_{i32,i64,ptr} value.
Instead of avoiding TCGTemp index 0, use the offset of
the TCGTemp within TCGContext. (Patches 16-19,21)
* Fixed icount wrt CF_HASH_MASK. I strongly suspect this
fixes any number of icount problems with MTTCG, since we
relied on unlocked magic code generation. (Patch 24)
* Merged removal of tb_tc.search from Emilio. (Patch 38)
* Added patch 52 from Emilio.
r~
Emilio G. Cota (25):
tcg: define CF_PARALLEL and use it for TB hashing along with
CF_COUNT_MASK
tcg: convert tb->cflags reads to tb_cflags(tb)
target/arm: check CF_PARALLEL instead of parallel_cpus
target/hppa: check CF_PARALLEL instead of parallel_cpus
target/i386: check CF_PARALLEL instead of parallel_cpus
target/m68k: check CF_PARALLEL instead of parallel_cpus
target/s390x: check CF_PARALLEL instead of parallel_cpus
target/sh4: check CF_PARALLEL instead of parallel_cpus
target/sparc: check CF_PARALLEL instead of parallel_cpus
tcg: check CF_PARALLEL instead of parallel_cpus
cpu-exec: lookup/generate TB outside exclusive region during
step_atomic
translate-all: use a binary search tree to track TBs in TBContext
exec-all: rename tb_free to tb_remove
translate-all: report correct avg host TB size
tcg: take tb_ctx out of TCGContext
tcg: define tcg_init_ctx and make tcg_ctx a pointer
gen-icount: fold exitreq_label into TCGContext
tcg: introduce **tcg_ctxs to keep track of all TCGContext's
tcg: distribute profiling counters across TCGContext's
tcg: allocate optimizer temps with tcg_malloc
osdep: introduce qemu_mprotect_rwx/none
translate-all: use qemu_protect_rwx/none helpers
tcg: introduce regions to split code_gen_buffer
tcg: enable multiple TCG contexts in softmmu
translate-all: exit from tb_phys_invalidate if qht_remove fails
Richard Henderson (27):
tcg: Merge opcode arguments into TCGOp
tcg: Propagate args to op->args in optimizer
tcg: Propagate args to op->args in tcg.c
tcg: Propagate TCGOp down to allocators
tcg: Introduce arg_temp
tcg: Add temp_global bit to TCGTemp
tcg: Return NULL temp for TCG_CALL_DUMMY_ARG
tcg: Introduce temp_arg, export temp_idx
tcg: Use per-temp state data in liveness
tcg: Avoid loops against variable bounds
tcg: Change temp_allocate_frame arg to TCGTemp
tcg: Remove unused TCG_CALL_DUMMY_TCGV
tcg: Use per-temp state data in optimize
tcg: Push tcg_ctx into generator functions
tcg: Push tcg_ctx into tcg_gen_callN
tcg: Introduce tcgv_{i32,i64,ptr}_{arg,temp}
tcg: Introduce temp_tcgv_{i32,i64,ptr}
tcg: Remove GET_TCGV_* and MAKE_TCGV_*
tcg: Remove TCGV_EQUAL*
qom: Introduce CPUClass.tcg_initialize
tcg: Use offsets not indices for TCGv_*
tcg: Use pointers in TCGOp->args
tcg: Add CPUState cflags_next_tb
tcg: Include CF_COUNT_MASK in CF_HASH_MASK
tcg: Add CF_LAST_IO + CF_USE_ICOUNT to CF_HASH_MASK
tcg: Remove CF_IGNORE_ICOUNT
tcg: Initialize cpu_env generically
include/exec/exec-all.h | 42 +-
include/exec/gen-icount.h | 27 +-
include/exec/helper-gen.h | 22 +-
include/exec/helper-head.h | 16 +-
include/exec/tb-context.h | 6 +-
include/exec/tb-hash-xx.h | 9 +-
include/exec/tb-hash.h | 4 +-
include/exec/tb-lookup.h | 6 +-
include/qemu/osdep.h | 2 +
include/qom/cpu.h | 9 +-
target/arm/helper-a64.h | 4 +
target/arm/translate.h | 1 -
target/hppa/helper.h | 2 +
target/m68k/helper.h | 1 +
target/s390x/helper.h | 4 +
target/sparc/cpu.h | 2 +-
tcg/tcg-op.h | 140 +++---
tcg/tcg.h | 287 ++++++-----
accel/tcg/cpu-exec.c | 100 ++--
accel/tcg/tcg-runtime.c | 4 +-
accel/tcg/translate-all.c | 533 +++++++++-----------
accel/tcg/translator.c | 4 +-
bsd-user/main.c | 3 +-
cpus.c | 14 +
exec.c | 14 +-
linux-user/main.c | 9 +-
linux-user/syscall.c | 1 +
qom/cpu.c | 1 +
target/alpha/cpu.c | 3 +-
target/alpha/translate.c | 14 +-
target/arm/cpu.c | 6 +-
target/arm/helper-a64.c | 38 +-
target/arm/op_helper.c | 7 -
target/arm/translate-a64.c | 38 +-
target/arm/translate.c | 19 +-
target/cris/cpu.c | 16 +-
target/cris/translate.c | 15 +-
target/cris/translate_v10.c | 2 -
target/hppa/cpu.c | 3 +-
target/hppa/op_helper.c | 32 +-
target/hppa/translate.c | 24 +-
target/i386/cpu.c | 5 +-
target/i386/translate.c | 67 ++-
target/lm32/cpu.c | 7 +-
target/lm32/translate.c | 18 +-
target/m68k/cpu.c | 7 +-
target/m68k/op_helper.c | 33 +-
target/m68k/translate.c | 25 +-
target/microblaze/cpu.c | 7 +-
target/microblaze/translate.c | 10 +-
target/mips/cpu.c | 5 +-
target/mips/translate.c | 37 +-
target/moxie/cpu.c | 7 +-
target/moxie/translate.c | 11 +-
target/nios2/cpu.c | 7 +-
target/nios2/translate.c | 10 +-
target/openrisc/cpu.c | 7 +-
target/openrisc/translate.c | 9 +-
target/ppc/translate.c | 20 +-
target/ppc/translate_init.c | 37 +-
target/s390x/cpu.c | 7 +-
target/s390x/mem_helper.c | 80 ++-
target/s390x/translate.c | 40 +-
target/sh4/cpu.c | 5 +-
target/sh4/translate.c | 19 +-
target/sparc/cpu.c | 5 +-
target/sparc/translate.c | 36 +-
target/tilegx/cpu.c | 7 +-
target/tilegx/translate.c | 5 +-
target/tricore/cpu.c | 5 +-
target/tricore/translate.c | 11 +-
target/unicore32/cpu.c | 7 +-
target/unicore32/translate.c | 10 +-
target/xtensa/cpu.c | 7 +-
target/xtensa/translate.c | 31 +-
tcg/optimize.c | 654 +++++++++++++-----------
tcg/tcg-op.c | 190 +++----
tcg/tcg.c | 1116 +++++++++++++++++++++++++++--------------
tests/qht-bench.c | 2 +-
util/osdep.c | 41 ++
80 files changed, 2280 insertions(+), 1811 deletions(-)
--
2.13.6
next reply other threads:[~2017-10-20 23:20 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-20 23:19 Richard Henderson [this message]
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 01/52] tcg: Merge opcode arguments into TCGOp Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 02/52] tcg: Propagate args to op->args in optimizer Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 03/52] tcg: Propagate args to op->args in tcg.c Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 04/52] tcg: Propagate TCGOp down to allocators Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 05/52] tcg: Introduce arg_temp Richard Henderson
2017-10-24 2:45 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 06/52] tcg: Add temp_global bit to TCGTemp Richard Henderson
2017-10-24 2:49 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 07/52] tcg: Return NULL temp for TCG_CALL_DUMMY_ARG Richard Henderson
2017-10-24 3:09 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 08/52] tcg: Introduce temp_arg, export temp_idx Richard Henderson
2017-10-23 17:09 ` Emilio G. Cota
2017-10-24 2:47 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 09/52] tcg: Use per-temp state data in liveness Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 10/52] tcg: Avoid loops against variable bounds Richard Henderson
2017-10-24 2:51 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 11/52] tcg: Change temp_allocate_frame arg to TCGTemp Richard Henderson
2017-10-24 2:52 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 12/52] tcg: Remove unused TCG_CALL_DUMMY_TCGV Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 13/52] tcg: Use per-temp state data in optimize Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 14/52] tcg: Push tcg_ctx into generator functions Richard Henderson
2017-10-24 2:56 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 15/52] tcg: Push tcg_ctx into tcg_gen_callN Richard Henderson
2017-10-24 2:57 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 16/52] tcg: Introduce tcgv_{i32, i64, ptr}_{arg, temp} Richard Henderson
2017-10-23 17:10 ` Emilio G. Cota
2017-10-24 3:02 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 17/52] tcg: Introduce temp_tcgv_{i32, i64, ptr} Richard Henderson
2017-10-23 17:10 ` Emilio G. Cota
2017-10-24 3:05 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 18/52] tcg: Remove GET_TCGV_* and MAKE_TCGV_* Richard Henderson
2017-10-23 17:12 ` Emilio G. Cota
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 19/52] tcg: Remove TCGV_EQUAL* Richard Henderson
2017-10-23 17:13 ` Emilio G. Cota
2017-10-24 3:11 ` Philippe Mathieu-Daudé
2017-10-24 19:56 ` Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 20/52] qom: Introduce CPUClass.tcg_initialize Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 21/52] tcg: Use offsets not indices for TCGv_* Richard Henderson
2017-10-23 17:37 ` Emilio G. Cota
2017-10-24 3:23 ` Philippe Mathieu-Daudé
2017-10-24 3:22 ` Philippe Mathieu-Daudé
2017-10-24 3:30 ` Philippe Mathieu-Daudé
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 22/52] tcg: Use pointers in TCGOp->args Richard Henderson
2017-10-23 17:37 ` Emilio G. Cota
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 23/52] tcg: define CF_PARALLEL and use it for TB hashing along with CF_COUNT_MASK Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 24/52] tcg: Add CPUState cflags_next_tb Richard Henderson
2017-10-23 17:53 ` Emilio G. Cota
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 25/52] tcg: Include CF_COUNT_MASK in CF_HASH_MASK Richard Henderson
2017-10-23 17:53 ` Emilio G. Cota
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 26/52] tcg: convert tb->cflags reads to tb_cflags(tb) Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 27/52] target/arm: check CF_PARALLEL instead of parallel_cpus Richard Henderson
2017-10-20 23:19 ` [Qemu-devel] [PATCH v7 28/52] target/hppa: " Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 29/52] target/i386: " Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 30/52] target/m68k: " Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 31/52] target/s390x: " Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 32/52] target/sh4: " Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 33/52] target/sparc: " Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 34/52] tcg: " Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 35/52] cpu-exec: lookup/generate TB outside exclusive region during step_atomic Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 36/52] tcg: Add CF_LAST_IO + CF_USE_ICOUNT to CF_HASH_MASK Richard Henderson
2017-10-23 17:57 ` Emilio G. Cota
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 37/52] tcg: Remove CF_IGNORE_ICOUNT Richard Henderson
2017-10-23 18:06 ` Emilio G. Cota
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 38/52] translate-all: use a binary search tree to track TBs in TBContext Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 39/52] exec-all: rename tb_free to tb_remove Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 40/52] translate-all: report correct avg host TB size Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 41/52] tcg: take tb_ctx out of TCGContext Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 42/52] tcg: define tcg_init_ctx and make tcg_ctx a pointer Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 43/52] gen-icount: fold exitreq_label into TCGContext Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 44/52] tcg: introduce **tcg_ctxs to keep track of all TCGContext's Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 45/52] tcg: distribute profiling counters across TCGContext's Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 46/52] tcg: allocate optimizer temps with tcg_malloc Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 47/52] osdep: introduce qemu_mprotect_rwx/none Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 48/52] translate-all: use qemu_protect_rwx/none helpers Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 49/52] tcg: introduce regions to split code_gen_buffer Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 50/52] tcg: enable multiple TCG contexts in softmmu Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 51/52] tcg: Initialize cpu_env generically Richard Henderson
2017-10-20 23:20 ` [Qemu-devel] [PATCH v7 52/52] translate-all: exit from tb_phys_invalidate if qht_remove fails Richard Henderson
2017-10-21 0:24 ` [Qemu-devel] [PATCH v7 00/52] tcg queued patches no-reply
2017-10-21 18:43 ` Richard Henderson
2017-10-21 0:44 ` no-reply
2017-10-23 18:14 ` Emilio G. Cota
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=20171020232023.15010-1-richard.henderson@linaro.org \
--to=richard.henderson@linaro.org \
--cc=cota@braap.org \
--cc=f4bug@amsat.org \
--cc=pbonzini@redhat.com \
--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).