qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/4] tcg/optimize: fix know-zero bits optimizati


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH 1/4] tcg/optimize: fix know-zero bits optimization
Date: Tue, 03 Sep 2013 11:50:40 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8

FWIW $subject has a typo. While at it...

Am 03.09.2013 08:27, schrieb Aurelien Jarno:
> Known-zero bits optimization is a great idea that helps to generate more
> optimized code. However the current implementation is basically useless
> as the computed mask is not saved.
> 
> Fix this to make it really working.
> 
> Cc: Richard Henderson <address@hidden>
> Cc: Paolo Bonzini <address@hidden>
> Signed-off-by: Aurelien Jarno <address@hidden>
> ---
>  tcg/optimize.c |    8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/tcg/optimize.c b/tcg/optimize.c
> index b29bf25..41f2906 100644
> --- a/tcg/optimize.c
> +++ b/tcg/optimize.c
> @@ -695,7 +695,8 @@ static TCGArg *tcg_constant_folding(TCGContext *s, 
> uint16_t *tcg_opc_ptr,
>              break;
>          }
>  
> -        /* Simplify using known-zero bits */
> +        /* Simplify using known-zero bits. Currently only ops with a single
> +           output argument is supported. */

"ops ... are"?

Cheers,
Andreas

>          mask = -1;
>          affected = -1;
>          switch (op) {
> @@ -1144,6 +1145,11 @@ static TCGArg *tcg_constant_folding(TCGContext *s, 
> uint16_t *tcg_opc_ptr,
>              } else {
>                  for (i = 0; i < def->nb_oargs; i++) {
>                      reset_temp(args[i]);
> +                    /* Save the corresponding known-zero bits mask for the
> +                       first output argument (only one supported so far). */
> +                    if (i == 0) {
> +                        temps[args[i]].mask = mask;
> +                    }
>                  }
>              }
>              for (i = 0; i < def->nb_args; i++) {
> 


-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

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