diff --git a/pytato/codegen.py b/pytato/codegen.py index 997439fde8bcf832fd31fffab8aa22077fc65b00..45ea962e37fb7a68ea1176e4810d8f61d4436dcb 100644 --- a/pytato/codegen.py +++ b/pytato/codegen.py @@ -147,7 +147,7 @@ class CodeGenPreprocessor(CopyMapper): bindings = {name: (self.rec(subexpr) if isinstance(subexpr, Array) else subexpr) - for name, subexpr in expr.bindings.items()} + for name, subexpr in sorted(expr.bindings.items())} return LoopyCall(translation_unit=translation_unit, bindings=bindings, diff --git a/pytato/transform.py b/pytato/transform.py index 05cd3eb3831462d9ae5f1073eed278de2ccbc1d8..4a838b5a2ffb867ba99d4ea913f3709110c003f2 100644 --- a/pytato/transform.py +++ b/pytato/transform.py @@ -113,7 +113,7 @@ class CopyMapper(Mapper): def map_index_lambda(self, expr: IndexLambda) -> Array: bindings: Dict[str, Array] = { name: self.rec(subexpr) - for name, subexpr in expr.bindings.items()} + for name, subexpr in sorted(expr.bindings.items())} return IndexLambda(expr=expr.expr, shape=tuple(self.rec(s) if isinstance(s, Array) else s for s in expr.shape), @@ -185,7 +185,7 @@ class CopyMapper(Mapper): def map_loopy_call(self, expr: LoopyCall) -> LoopyCall: bindings = {name: (self.rec(subexpr) if isinstance(subexpr, Array) else subexpr) - for name, subexpr in expr.bindings.items()} + for name, subexpr in sorted(expr.bindings.items())} return LoopyCall(translation_unit=expr.translation_unit, bindings=bindings, @@ -228,7 +228,7 @@ class CombineMapper(Mapper, Generic[CombineT]): def map_index_lambda(self, expr: IndexLambda) -> CombineT: return self.combine(*(self.rec(bnd) - for bnd in expr.bindings.values()), + for _, bnd in sorted(expr.bindings.items())), *(self.rec(s) for s in expr.shape if isinstance(s, Array))) @@ -276,7 +276,7 @@ class CombineMapper(Mapper, Generic[CombineT]): def map_loopy_call(self, expr: LoopyCall) -> CombineT: return self.combine(*(self.rec(ary) - for ary in expr.bindings.values() + for _, ary in sorted(expr.bindings.items()) if isinstance(ary, Array))) # }}} @@ -433,7 +433,7 @@ class WalkMapper(Mapper): if not self.visit(expr): return - for child in expr.bindings.values(): + for _, child in sorted(expr.bindings.items()): self.rec(child) for dim in expr.shape: @@ -502,7 +502,7 @@ class WalkMapper(Mapper): if not self.visit(expr): return - for child in expr.bindings.values(): + for _, child in sorted(expr.bindings.items()): if isinstance(child, Array): self.rec(child)