diff --git a/loopy/schedule.py b/loopy/schedule.py index f22b95d45275d54d473a97a8f7a0dfde69555d6b..f276e2f1244b41429ff434cd7fa1ad5c32d7563a 100644 --- a/loopy/schedule.py +++ b/loopy/schedule.py @@ -1039,7 +1039,7 @@ def get_barrier_needing_dependency(kernel, target, source, reverse, var_kind): raw = tgt_read & src_write war = tgt_write & src_read - for var_name in raw | war: + for var_name in sorted(raw | war): return DependencyRecord( source=source, target=target, @@ -1050,7 +1050,7 @@ def get_barrier_needing_dependency(kernel, target, source, reverse, var_kind): if source is target: return None - for var_name in waw: + for var_name in sorted(waw): return DependencyRecord( source=source, target=target, @@ -1213,7 +1213,7 @@ def insert_barriers(kernel, schedule, reverse, kind, level=0): # (for leading (before-first-barrier) bit of loop body) for insn_id in insn_ids_from_schedule(subresult[:first_barrier_index]): - search_set = candidates + search_set = sorted(candidates) for dep_src_insn_id in search_set: dep = get_barrier_needing_dependency( @@ -1252,7 +1252,7 @@ def insert_barriers(kernel, schedule, reverse, kind, level=0): elif isinstance(sched_item, RunInstruction): i += 1 - search_set = candidates + search_set = sorted(candidates) for dep_src_insn_id in search_set: dep = get_barrier_needing_dependency( diff --git a/loopy/target/c/__init__.py b/loopy/target/c/__init__.py index ca71c21269add662dc1ef19a4437c9f297ec6477..628e5d9ac14714f58dd6b68e3f8b605880b1f19b 100644 --- a/loopy/target/c/__init__.py +++ b/loopy/target/c/__init__.py @@ -102,7 +102,9 @@ class CTarget(TargetBase): sub_tp, sub_decl = self.subdecl.get_decl_pair() return sub_tp, ("*const restrict %s" % sub_decl) - for tv in six.itervalues(kernel.temporary_variables): + for tv in sorted( + six.itervalues(kernel.temporary_variables), + key=lambda tv: tv.name): decl_info = tv.decl_info(self, index_dtype=kernel.index_dtype) if not tv.base_storage: @@ -166,7 +168,7 @@ class CTarget(TargetBase): idi.dtype.itemsize * product(si for si in idi.shape)) - for bs_name, bs_sizes in six.iteritems(base_storage_sizes): + for bs_name, bs_sizes in sorted(six.iteritems(base_storage_sizes)): bs_var_decl = POD(self, np.int8, bs_name) if base_storage_to_is_local[bs_name]: bs_var_decl = CLLocal(bs_var_decl)