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 <r...@twiddle.net>
> Cc: Paolo Bonzini <pbonz...@redhat.com>
> Signed-off-by: Aurelien Jarno <aurel...@aurel32.net>
> ---
>  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