Mesa (master): nir/algebraic: A bit of validation refactoring'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Oct 22 21:00:28 UTC 2018


Module: Mesa
Branch: master
Commit: ea9e651423424219cae8ebdef88f432b7cff31ab
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea9e651423424219cae8ebdef88f432b7cff31ab

Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date:   Fri Oct 19 14:03:24 2018 -0500

nir/algebraic: A bit of validation refactoring'

We rename some local variables in validate() to be more readable and
plumb the var through to get/set_var_bit_class instead of the var index.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>

---

 src/compiler/nir/nir_algebraic.py | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/src/compiler/nir/nir_algebraic.py b/src/compiler/nir/nir_algebraic.py
index 39b85089b1..34ea2ba9e6 100644
--- a/src/compiler/nir/nir_algebraic.py
+++ b/src/compiler/nir/nir_algebraic.py
@@ -333,32 +333,32 @@ class BitSizeValidator(object):
       self._class_relation = IntEquivalenceRelation()
 
    def validate(self, search, replace):
-      dst_class = self._propagate_bit_size_up(search)
-      if dst_class == 0:
-         dst_class = self._new_class()
-      self._propagate_bit_class_down(search, dst_class)
+      search_dst_class = self._propagate_bit_size_up(search)
+      if search_dst_class == 0:
+         search_dst_class = self._new_class()
+      self._propagate_bit_class_down(search, search_dst_class)
 
-      validate_dst_class = self._validate_bit_class_up(replace)
-      assert validate_dst_class == 0 or validate_dst_class == dst_class
-      self._validate_bit_class_down(replace, dst_class)
+      replace_dst_class = self._validate_bit_class_up(replace)
+      assert replace_dst_class == 0 or replace_dst_class == search_dst_class
+      self._validate_bit_class_down(replace, search_dst_class)
 
    def _new_class(self):
       self._num_classes += 1
       return -self._num_classes
 
-   def _set_var_bit_class(self, var_id, bit_class):
+   def _set_var_bit_class(self, var, bit_class):
       assert bit_class != 0
-      var_class = self._var_classes[var_id]
+      var_class = self._var_classes[var.index]
       if var_class == 0:
-         self._var_classes[var_id] = bit_class
+         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
          var_class = self._class_relation.add_equiv(var_class, bit_class)
-         self._var_classes[var_id] = var_class
+         self._var_classes[var.index] = var_class
 
-   def _get_var_bit_class(self, var_id):
-      return self._class_relation.get_canonical(self._var_classes[var_id])
+   def _get_var_bit_class(self, var):
+      return self._class_relation.get_canonical(self._var_classes[var.index])
 
    def _propagate_bit_size_up(self, val):
       if isinstance(val, (Constant, Variable)):
@@ -396,7 +396,7 @@ class BitSizeValidator(object):
 
       elif isinstance(val, Variable):
          assert val.bit_size == 0 or val.bit_size == bit_class
-         self._set_var_bit_class(val.index, bit_class)
+         self._set_var_bit_class(val, bit_class)
 
       elif isinstance(val, Expression):
          nir_op = opcodes[val.opcode]
@@ -426,7 +426,7 @@ class BitSizeValidator(object):
          return val.bit_size
 
       elif isinstance(val, Variable):
-         var_class = self._get_var_bit_class(val.index)
+         var_class = self._get_var_bit_class(val)
          # By the time we get to validation, every variable should have a class
          assert var_class != 0
 




More information about the mesa-commit mailing list