Patchwork tcg: Don't make exitreq flag a local temporary

login
register
mail settings
Submitter Richard Henderson
Date March 5, 2013, 4:54 p.m.
Message ID <1362502481-22248-1-git-send-email-rth@twiddle.net>
Download mbox | patch
Permalink /patch/225086/
State New
Headers show

Comments

Richard Henderson - March 5, 2013, 4:54 p.m.
The value is not actually live across basic blocks, so there's no
need for the local property.  This eliminates storing the temporary
to its home location at the branch.

Cc: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 include/exec/gen-icount.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Peter Maydell - March 6, 2013, 1:36 a.m.
On 6 March 2013 00:54, Richard Henderson <rth@twiddle.net> wrote:
> The value is not actually live across basic blocks, so there's no
> need for the local property.  This eliminates storing the temporary
> to its home location at the branch.
>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Richard Henderson <rth@twiddle.net>

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

I hadn't noticed we differed from the icount code in not
needing to access the temp after the branch.

-- PMM
Aurelien Jarno - March 9, 2013, 6:01 p.m.
On Tue, Mar 05, 2013 at 08:54:41AM -0800, Richard Henderson wrote:
> The value is not actually live across basic blocks, so there's no
> need for the local property.  This eliminates storing the temporary
> to its home location at the branch.
> 
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
>  include/exec/gen-icount.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/exec/gen-icount.h b/include/exec/gen-icount.h
> index 4e3b17b..4fc7b29 100644
> --- a/include/exec/gen-icount.h
> +++ b/include/exec/gen-icount.h
> @@ -15,7 +15,7 @@ static inline void gen_tb_start(void)
>      TCGv_i32 flag;
>  
>      exitreq_label = gen_new_label();
> -    flag = tcg_temp_local_new_i32();
> +    flag = tcg_temp_new_i32();
>      tcg_gen_ld_i32(flag, cpu_env,
>                     offsetof(CPUState, tcg_exit_req) - ENV_OFFSET);
>      tcg_gen_brcondi_i32(TCG_COND_NE, flag, 0, exitreq_label);

Thanks, applied.

Patch

diff --git a/include/exec/gen-icount.h b/include/exec/gen-icount.h
index 4e3b17b..4fc7b29 100644
--- a/include/exec/gen-icount.h
+++ b/include/exec/gen-icount.h
@@ -15,7 +15,7 @@  static inline void gen_tb_start(void)
     TCGv_i32 flag;
 
     exitreq_label = gen_new_label();
-    flag = tcg_temp_local_new_i32();
+    flag = tcg_temp_new_i32();
     tcg_gen_ld_i32(flag, cpu_env,
                    offsetof(CPUState, tcg_exit_req) - ENV_OFFSET);
     tcg_gen_brcondi_i32(TCG_COND_NE, flag, 0, exitreq_label);