On 10/20/2018 11:01 AM, Jason Ekstrand wrote:
> Previously, we would fail if a variable had an assigned but unknown bit
> size X and we tried to assign it an actual bit size.  However, this is
> ok because, at the time we do the search, the variable does have an
> actual bit size and it will match X because of the NIR rules.
> ---
>  src/compiler/nir/nir_algebraic.py | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/src/compiler/nir/nir_algebraic.py 
> b/src/compiler/nir/nir_algebraic.py
> index 34ea2ba9e68..bcefa3372b3 100644
> --- a/src/compiler/nir/nir_algebraic.py
> +++ b/src/compiler/nir/nir_algebraic.py
> @@ -352,8 +352,12 @@ class BitSizeValidator(object):
>        if var_class == 0:
>           self._var_classes[var.index] = bit_class
>        else:
> -         canon_class = self._class_relation.get_canonical(var_class)
> -         assert canon_class < 0 or canon_class == bit_class
> +         canon_bit_class = self._class_relation.get_canonical(var_class)
> +         canon_var_class = self._class_relation.get_canonical(bit_class)

Are the _bit_ and _var_ names transposed in the left-hand side, or am I
not understanding something?  Or both? :)

> +         assert canon_var_class < 0 or canon_bit_class < 0 or \
> +                canon_var_class == canon_bit_class, \
> +                'Variable {0} cannot be both {1}-bit and {2}-bit' \
> +                .format(str(var), bit_class, var_class)
>           var_class = self._class_relation.add_equiv(var_class, bit_class)
>           self._var_classes[var.index] = var_class
>  
> 

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to