[Top][All Lists]
[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
>
- [Qemu-devel] [PATCH 11/20] target-sparc: Avoid cpu_tmp32 in Read Priv Register, (continued)
- [Qemu-devel] [PATCH 11/20] target-sparc: Avoid cpu_tmp32 in Read Priv Register, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 08/20] target-sparc: Make the cpu_addr variable local to load/store handling, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 13/20] target-sparc: Tidy ldfsr, stfsr, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 16/20] target-sparc: Remove cpu_tmp64 use from softint insns, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 15/20] target-sparc: Don't use a temporary for gen_dest_fpr_D, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 14/20] target-sparc: Remove usage of cpu_tmp64 from most helper functions, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 17/20] target-sparc: Remove last uses of cpu_tmp64, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 19/20] target-sparc: Make cpu_dst local to OP=2 insns, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 20/20] target-sparc: Remove cpu_tmp0 as a global, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 18/20] target-sparc: Only use cpu_dst for eventual writes to a gpr, Richard Henderson, 2012/10/09
- Re: [Qemu-devel] [PATCH 00/20] target-sparc: Cleanup handling of temps,
Blue Swirl <=