From ac94020e536b0f2a06467c82331fd6c859779aa1 Mon Sep 17 00:00:00 2001
From: Matt Wala <wala1@illinois.edu>
Date: Sat, 30 May 2020 22:31:53 -0500
Subject: [PATCH] Revert "Use pytools.compute_topological_order"

This reverts commit 16f058b3f6d8a805d75e152fef17ded1169f2346.
---
 loopy/kernel/tools.py | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/loopy/kernel/tools.py b/loopy/kernel/tools.py
index bccff71bd..ac1e00bae 100644
--- a/loopy/kernel/tools.py
+++ b/loopy/kernel/tools.py
@@ -1422,15 +1422,21 @@ def draw_dependencies_as_unicode_arrows(
 def stringify_instruction_list(kernel):
     # {{{ topological sort
 
-    from pytools.graph import compute_topological_order
+    printed_insn_ids = set()
+    printed_insn_order = []
 
-    dep_graph = {}
-    for insn in kernel.instructions:
-        dep_graph[insn.id] = natsorted(insn.depends_on)
+    def insert_insn_into_order(insn):
+        if insn.id in printed_insn_ids:
+            return
+        printed_insn_ids.add(insn.id)
 
-    printed_insn_order = compute_topological_order(dep_graph)
+        for dep_id in natsorted(insn.depends_on):
+            insert_insn_into_order(kernel.id_to_insn[dep_id])
 
-    del dep_graph
+        printed_insn_order.append(insn)
+
+    for insn in kernel.instructions:
+        insert_insn_into_order(insn)
 
     # }}}
 
-- 
GitLab