[mlir][taco] Accept an integer list for the ordering when defining a tensor format.
authorBixia Zheng <bixia@google.com>
Fri, 28 Jan 2022 00:17:26 +0000 (16:17 -0800)
committerBixia Zheng <bixia@google.com>
Fri, 28 Jan 2022 18:33:25 +0000 (10:33 -0800)
The unit tests for PyTACO hasn't been upstreamed yet. A unit test for this
change will be added when we upstream all the unit tests for PyTACO.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D118417

mlir/test/Integration/Dialect/SparseTensor/taco/tools/mlir_pytaco.py

index f64d340..657185c 100644 (file)
@@ -323,6 +323,10 @@ class Format:
 
     if self.ordering is None:
       self.ordering = ModeOrdering(list(range(self.rank())))
+    if isinstance(self.ordering, list):
+      if not _all_instance_of(self.ordering, int):
+        raise ValueError(f"Expected a list of integer: {self.ordering}")
+      self.ordering = ModeOrdering(self.ordering)
     if not isinstance(self.ordering, ModeOrdering):
       raise ValueError(f"Expected ModeOrdering: {self.ordering}")