qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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~


  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).