[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-2.5 04/10] tcg/optimize: allow constant to h
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH for-2.5 04/10] tcg/optimize: allow constant to have copies |
Date: |
Thu, 30 Jul 2015 09:46:52 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On 2015-07-29 21:42, Alex Bennée wrote:
>
> Aurelien Jarno <address@hidden> writes:
>
> > On 2015-07-29 17:12, Alex Bennée wrote:
> >>
> >> Aurelien Jarno <address@hidden> writes:
> >>
> >> > Now that copies and constants are tracked separately, we can allow
> >> > constant to have copies, deferring the choice to use a register or a
> >> > constant to the register allocation pass. This prevent this kind of
> >> > regular constant reloading:
> >> >
> >> > -OUT: [size=338]
> >> > +OUT: [size=298]
> >> > mov -0x4(%r14),%ebp
> >> > test %ebp,%ebp
> >> > jne 0x7ffbe9cb0ed6
> >> > mov $0x40002219f8,%rbp
> >> > mov %rbp,(%r14)
> >> > - mov $0x40002219f8,%rbp
> >> > mov $0x4000221a20,%rbx
> >> > mov %rbp,(%rbx)
> >> > mov $0x4000000000,%rbp
> >> > mov %rbp,(%r14)
> <snip>
> >> > --- a/tcg/optimize.c
> >> > +++ b/tcg/optimize.c
> >> > @@ -237,11 +237,6 @@ static void tcg_opt_gen_mov(TCGContext *s, TCGOp
> >> > *op, TCGArg *args,
> >> > return;
> >> > }
> >> >
> >> > - if (temp_is_const(src)) {
> >> > - tcg_opt_gen_movi(s, op, args, dst, temps[src].val);
> >> > - return;
> >> > - }
> >> > -
> >>
> >> That looks suspicious, surely we only want to drop the move if we
> >> already have the const somewhere else?
> >
> > That's actually the while point of this patchset, to avoid converting
> > mov into moving for constant values and thus loosing the link between
> > temps.
>
> I get that, I guess I didn't follow the previous loading of the constant
> value. Maybe showing the ops in the commit message will make it clearer.
Ok, I'll do that in v3.
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
address@hidden http://www.aurel32.net
[Qemu-devel] [PATCH for-2.5 08/10] tcg/optimize: add optimizations for ext_i32_i64 and extu_i32_i64 ops, Aurelien Jarno, 2015/07/24
[Qemu-devel] [PATCH for-2.5 05/10] tcg: rename trunc_shr_i32 into trunc_shr_i64_i32, Aurelien Jarno, 2015/07/24
[Qemu-devel] [PATCH for-2.5 02/10] tcg/optimize: add temp_is_const and temp_is_copy functions, Aurelien Jarno, 2015/07/24
[Qemu-devel] [PATCH for-2.5 03/10] tcg/optimize: track const/copy status separately, Aurelien Jarno, 2015/07/24