[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 00/26] tcg: rework liveness analysis and regi
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 00/26] tcg: rework liveness analysis and register allocator |
Date: |
Wed, 10 Oct 2012 08:59:43 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120911 Thunderbird/15.0.1 |
Il 09/10/2012 21:55, Aurelien Jarno ha scritto:
> This patch series rework the liveness analysis and register allocator
> in order to generate more optimized code, by avoiding a lot of move
> instructions. I have measured a 9% performance improvement in user mode
> and 4% in system mode.
>
> The idea behind this patch series is to free registers as soon as the
> temps are not used anymore instead of waiting for a basic block end or
> an op with side effects.
Would it make any sense to express the saves as real TCG ops? This
would have a couple of advantages:
- more copy propagation and dead code elimination. Something like this:
mov_i64 cc_dst,rax
right now is compiled as follows:
0x5555557ac37a: mov %rbp,(%r14) # spill rax
0x5555557ac381: mov (%r14),%rbp # load rax from memory
0x5555557ac38f: mov %rbp,0x98(%r14) # spill cc_dst to memory
while expressing spills as TCG ops would turn the above into effectively
st_i64 rax, env, $0x98
- constant propagation using constraints. This would let tcg-i386 use
effectively the mov $imm,(addr) instruction for spills of known-constant
values.
Paolo
- Re: [Qemu-devel] [PATCH v2 15/26] target-alpha: rename helper flags, (continued)
- [Qemu-devel] [PATCH v2 16/26] target-arm: rename helper flags, Aurelien Jarno, 2012/10/09
- [Qemu-devel] [PATCH v2 05/26] tcg: rework liveness analysis, Aurelien Jarno, 2012/10/09
- [Qemu-devel] [PATCH v2 01/26] tcg: add temp_dead(), Aurelien Jarno, 2012/10/09
- [Qemu-devel] [PATCH v2 04/26] tcg: sync output arguments on liveness request, Aurelien Jarno, 2012/10/09
- [Qemu-devel] [PATCH v2 13/26] tcg: synchronize globals for ops with side effects, Aurelien Jarno, 2012/10/09
- [Qemu-devel] [PATCH v2 23/26] target-sh4: rename helper flags, Aurelien Jarno, 2012/10/09
- [Qemu-devel] [PATCH v2 09/26] tcg: start with local temps in TEMP_VAL_MEM state, Aurelien Jarno, 2012/10/09
- Re: [Qemu-devel] [PATCH v2 00/26] tcg: rework liveness analysis and register allocator,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH v2 00/26] tcg: rework liveness analysis and register allocator, Richard Henderson, 2012/10/10