qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 00/20] target-sparc: Cleanup handling of temps


From: Blue Swirl
Subject: Re: [Qemu-devel] [PATCH 00/20] target-sparc: Cleanup handling of temps
Date: Sat, 13 Oct 2012 10:36:08 +0000

On Tue, Oct 9, 2012 at 10:04 PM, Richard Henderson <address@hidden> wrote:
> The primary goal of this patch set is to have all references to windowed
> registers to go through new routines that have access to DisasContext.
> This is a prerequisite to any change in how windowed registers might be
> managed.
>
> Since such a goal must of course touch get_src[12], and therefore touch
> the use of the cpu_src[12] temporaries, a secondary goal of the patch set
> became to clean up all of the temporary management within the translator.
> And in particular eliminate the 6 "global" temps that we currently allocate
> inside gen_intermediate_code_internal.
>
> In some cases we convert their uses to simple temps allocated and freed
> nearby their uses.  In some cases we push the cpu_foo temp down into the
> disassembly of a given opcode, making it local to the code that ought to
> be able to access it.  And finally we provide for temps to be allocated
> dynamically, and then automatically freed at the end of the insn.

I'm getting compile errors, here's Clang version.

  CC    sparc-softmmu/target-sparc/translate.o
/src/qemu/target-sparc/translate.c:3784:44: error: variable 'cpu_tmp0'
is uninitialized when used here [-Werror,-Wuninitialized]
                            tcg_gen_xor_tl(cpu_tmp0, cpu_src1, cpu_src2);
                                           ^~~~~~~~
/src/qemu/target-sparc/translate.c:2637:26: note: initialize the
variable 'cpu_tmp0' to silence this warning
            TCGv cpu_tmp0;
                         ^
                          = 0
  CC    sparc64-softmmu/target-sparc/translate.o
/src/qemu/target-sparc/translate.c:3799:44: error: variable 'cpu_tmp0'
is uninitialized when used here [-Werror,-Wuninitialized]
                            tcg_gen_xor_tl(cpu_tmp0, cpu_src1, cpu_src2);
                                           ^~~~~~~~
/src/qemu/target-sparc/translate.c:2637:26: note: initialize the
variable 'cpu_tmp0' to silence this warning
            TCGv cpu_tmp0;
                         ^
                          = 0

>
> The result ought to be microscopically faster than before, if only
> because TCG is iterating over fewer temporaries.
>
>
> r~
>
>
> Richard Henderson (20):
>   target-sparc: Add gen_load/store/dest_gpr
>   target-sparc: Conversion to gen_*_gpr, part 1
>   target-sparc: Use gen_load_gpr in get_src[12]
>   target-sparc: Convert asi helpers to gen_*_gpr
>   target-sparc: Convert swap to gen_load/store_gpr
>   target-sparc: Finish conversion to gen_load_gpr
>   target-sparc: Cleanup cpu_src[12] allocation
>   target-sparc: Make the cpu_addr variable local to load/store handling
>   target-sparc: Split out get_temp_i32
>   target-sparc: Use get_temp_i32 in gen_dest_fpr_F
>   target-sparc: Avoid cpu_tmp32 in Read Priv Register
>   target-sparc: Avoid cpu_tmp32 in Write Priv Register
>   target-sparc: Tidy ldfsr, stfsr
>   target-sparc: Remove usage of cpu_tmp64 from most helper functions
>   target-sparc: Don't use a temporary for gen_dest_fpr_D
>   target-sparc: Remove cpu_tmp64 use from softint insns
>   target-sparc: Remove last uses of cpu_tmp64
>   target-sparc: Only use cpu_dst for eventual writes to a gpr
>   target-sparc: Make cpu_dst local to OP=2 insns
>   target-sparc: Remove cpu_tmp0 as a global
>
>  target-sparc/translate.c | 1233 
> +++++++++++++++++++++++-----------------------
>  1 file changed, 609 insertions(+), 624 deletions(-)
>
> --
> 1.7.11.4
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]