From: Richard Henderson <richard.henderson@linaro.org>
To: Taylor Simpson <tsimpson@quicinc.com>, qemu-devel@nongnu.org
Cc: philmd@linaro.org, ale@rev.ng, anjo@rev.ng, bcain@quicinc.com,
quic_mathbern@quicinc.com
Subject: Re: [PATCH v3 11/11] Hexagon (target/hexagon) Use direct block chaining for tight loops
Date: Sat, 5 Nov 2022 12:44:01 +1100 [thread overview]
Message-ID: <a13e4232-dea1-3050-b0c8-a6cd0cec3137@linaro.org> (raw)
In-Reply-To: <20221104192631.29434-12-tsimpson@quicinc.com>
On 11/5/22 06:26, Taylor Simpson wrote:
> Direct block chaining is documented here
> https://qemu.readthedocs.io/en/latest/devel/tcg.html#direct-block-chaining
>
> Hexagon inner loops end with the endloop0 instruction
> To go back to the beginning of the loop, this instructions writes to PC
> from register SA0 (start address 0). To use direct block chaining, we
> have to assign PC with a constant value. So, we specialize the code
> generation when the start of the translation block is equal to SA0.
>
> When this is the case, we defer the compare/branch from endloop0 to
> gen_end_tb. When this is done, we can assign the start address of the TB
> to PC.
>
> Signed-off-by: Taylor Simpson <tsimpson@quicinc.com>
> ---
> target/hexagon/cpu.h | 17 ++++++++----
> target/hexagon/gen_tcg.h | 3 ++
> target/hexagon/translate.h | 1 +
> target/hexagon/genptr.c | 57 ++++++++++++++++++++++++++++++++++++++
> target/hexagon/translate.c | 34 +++++++++++++++++++++++
> 5 files changed, 107 insertions(+), 5 deletions(-)
>
> diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h
> index ff8c26272d..5260e0f127 100644
> --- a/target/hexagon/cpu.h
> +++ b/target/hexagon/cpu.h
> @@ -152,16 +152,23 @@ struct ArchCPU {
>
> #include "cpu_bits.h"
>
> +typedef union {
> + uint32_t i;
> + struct {
> + bool is_tight_loop:1;
> + };
> +} HexStateFlags;
I don't see this as an improvement on manual flags handling, as it makes the flags value
be dependent on host bit-field ordering. This makes it more difficult to compare traces
across hosts.
Otherwise,
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
next prev parent reply other threads:[~2022-11-05 1:44 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-04 19:26 [PATCH v3 00/11] Hexagon (target/hexagon) performance and bug fixes Taylor Simpson
2022-11-04 19:26 ` [PATCH v3 01/11] Hexagon (target/hexagon) Add pkt and insn to DisasContext Taylor Simpson
2022-11-04 22:46 ` Richard Henderson
2022-11-04 19:26 ` [PATCH v3 02/11] Hexagon (target/hexagon) Fix predicated assignment to .tmp and .cur Taylor Simpson
2022-11-04 22:50 ` Richard Henderson
2022-11-04 19:26 ` [PATCH v3 03/11] Hexagon (target/hexagon) Add overrides for S2_asr_r_r_sat/S2_asl_r_r_sat Taylor Simpson
2022-11-04 23:59 ` Richard Henderson
2022-11-04 19:26 ` [PATCH v3 04/11] Hexagon (target/hexagon) Only use branch_taken when packet has multi cof Taylor Simpson
2022-11-05 0:04 ` Richard Henderson
2022-11-04 19:26 ` [PATCH v3 05/11] Hexagon (target/hexagon) Remove PC from the runtime state Taylor Simpson
2022-11-05 0:07 ` Richard Henderson
2022-11-04 19:26 ` [PATCH v3 06/11] Hexagon (target/hexagon) Remove next_PC from " Taylor Simpson
2022-11-05 0:10 ` Richard Henderson
2022-11-04 19:26 ` [PATCH v3 07/11] Hexagon (target/hexagon) Add overrides for direct call instructions Taylor Simpson
2022-11-05 0:12 ` Richard Henderson
2022-11-05 0:19 ` Richard Henderson
2022-11-05 0:21 ` Richard Henderson
2022-11-04 19:26 ` [PATCH v3 08/11] Hexagon (target/hexagon) Add overrides for compound compare and jump Taylor Simpson
2022-11-05 0:15 ` Richard Henderson
2022-11-04 19:26 ` [PATCH v3 09/11] Hexagon (target/hexagon) Add overrides for various forms of jump Taylor Simpson
2022-11-05 0:22 ` Richard Henderson
2022-11-04 19:26 ` [PATCH v3 10/11] Hexagon (target/hexagon) Use direct block chaining for direct jump/branch Taylor Simpson
2022-11-05 1:33 ` Richard Henderson
2022-11-06 21:46 ` Taylor Simpson
2022-11-04 19:26 ` [PATCH v3 11/11] Hexagon (target/hexagon) Use direct block chaining for tight loops Taylor Simpson
2022-11-05 1:44 ` Richard Henderson [this message]
2022-11-06 21:52 ` Taylor Simpson
2022-11-06 23:12 ` Richard Henderson
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=a13e4232-dea1-3050-b0c8-a6cd0cec3137@linaro.org \
--to=richard.henderson@linaro.org \
--cc=ale@rev.ng \
--cc=anjo@rev.ng \
--cc=bcain@quicinc.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=quic_mathbern@quicinc.com \
--cc=tsimpson@quicinc.com \
/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).